因为在二进制里你选的是”单字“,所以就按”单字“的位数处理.
字节是8位的,也就是二进制表示时最多可以8位的0或1.
单字是16位,2个字节.
双子32位,4个字节.
计算机里的负数用补数表示.
就是把正数的二进制,各位取反,0变1,1变0,然后再加1.
正数和0的补数就是它本身.
比如-1,就是1的二进制,实际上要把位数考虑进去,
如果是单字,16位,要把前面的0写上,再取反.
即1=0000 0000 0000 0001
-1=1111 1111 1111 1110 + 1=1111 1111 1111 1111
所以就是你看到的那样了.
这就是计算机里有符号的整数的表示方法.
用整数二进制的第一位作符号位,0为正整数或者0,1为负整数,用补数表示.
8位无符号整数从0000 0000 到1111 1111,可以表示0到2^8-1=255,一共256个数.
8位有符号整数
从0000 0000到0111 1111为0和正数,即0到2^7-1
从1000 0000到1111 1111为负数,即-2^7到-1
所以一共可以表示-2^7到2^7-1,即-128到127,也是一共256个数.
同理,
32位无符号整数范围为0到2^32-1,有符号整数范围为-2^31到2^31-1