为什么65535的二进制为111.1111(16个1),111.1111(16个1)是-1的二进制?
为什么65535的二进制为111.1111(16个1),111.1111(16个1)是-1的二进制?
65535是2的16次方再减1,为什么就是16个一啊
2^16=65536,2^16-1=65535这没有错啊!111.1111(16个1)是-1的二进制也没错,但这是在int型为2字节的时候.当int型为2字节时,能表示的有符号数的范围是-32768~32767,表示无符号数时范围是0~65535.现在的int型已大都为4字...就是为什么2^16-1=65535,65535的二进制就是111....1111(16个1),-1的二进制是111....1111(16个1),算法规则是什么啊,谢谢用2除,反向取余数,就把十进制变成二进制了—— 65535÷2=32767 余 1 32767÷2=16383 余 1 16383÷2=4095 余 1 4095÷2=2047 余 1 2047÷2=1023 余 1 1023÷2=511 余 1 511÷2=255 余 1 255÷2=127 余 1 127÷2=63 余 1 63÷2=31 余 1 31÷2=15 余 1 15÷2=7 余 1 7÷2=3 余 1 3÷2=1 余 1 1÷2=0 余 1 反向取余数:11111111 11111111。 至于-1的也是11111111 11111111的“来历”: 16位表示-1的原码是10000000 00000001,那个最高位上的1是表示负数的称号。计算机中都是用补码表示的,求补码的办法之一是:先求其反码,再加1;反码求法是除符号位外各位取反:11111111 11111110,求补码再加1,即是11111111 11111111。这就是-1在计算机中的16位二进制表示。