#P10003. 补码求整数

补码求整数

题目背景

【原码】 一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的最高位存放符号,正数为 00,负数为 11。例如,十进制整数 +3+3如果计算机字长为8位,转换成二进制就是 0000 00110000\space0011。而十进制整数 3-3 ,就是 1000 00111000\space0011。这样表示出来的原始机器数可以认为是原码

【反码】 正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各个位取反。

例如,十进制整数 +3+3如果计算机字长为8位,原码和反码都是 0000 00110000\space0011。而十进制整数 3-3 ,原码是 1000 00111000\space0011,反码是 1111 11001111\space1100

【补码】 正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1(也即在反码的基础上+1)。

例如,十进制整数 +3+3如果计算机字长为8位,原码、反码、补码都是 0000 00110000\space0011。而十进制整数 3-3 ,原码是 1000 00111000\space0011,反码是 1111 11001111\space1100,补码是 1111 11011111\space1101

题目描述

提供一系列整数(范围是 231 ~ 2311-2^{31}\space~\space2^{31}-1)的 3232 位字长的二进制补码,计算输出它们的十进制数。

输入格式

11 行是一个正整数 nn

接着有 nn 行,每行是一个整数的 3232 位字长的二进制补码。

输出格式

一共有 nn 行,依次是输入的 nn3232 位字长的二进制补码对应的十进制整数。

输入输出样例

5
00000000000000000000000000000001
01111111111111111111111111111111
00000000000000000000000000000000
11111111111111111111111111111111
10000000000000000000000000000000
1
2147483647
0
-1
-2147483648

说明/提示

👀️ 对于100%100\% 的数据,1N1041 \leq N \leq 10^4,输入的3232 位字长的二进制补码对应的整数范围是 231 ~ 2311-2^{31}\space~\space2^{31}-1