为什么65535的二进制为111.1111(16个1),111.1111(16个1)是-1的二进制?65535是2的16次方再减1,为什么就是16个一啊

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/07 02:01:19
为什么65535的二进制为111.1111(16个1),111.1111(16个1)是-1的二进制?65535是2的16次方再减1,为什么就是16个一啊
xSnA~4d )&>EcD)416" -6BR(%˶KWEgfg Uf;;DI;>' i2c'<؆}N|(aD`@t;ѤUb }wO]@Q/f -^>.*Sz;@G@4"jB]*7ÑUZIm0XJ%'U?N'!xLզV Z by>y&F=x3绿!sD e&P1SS@ 1{ҫ Z?c*4g6'(?eEq  pM*PWHKکNU<Է3{]wi`1h#òbȨ"rZ>Кi.ř';_F7w{pzW Ku{bi4)E["N& }CV<#gK=!~ pCs`!$2:%]4tYlx$Z azMTg5-Wv$np٫sue5^r7Ku0\\w?w[?|a΄,3k+ }HVH@?vr1

为什么65535的二进制为111.1111(16个1),111.1111(16个1)是-1的二进制?65535是2的16次方再减1,为什么就是16个一啊
为什么65535的二进制为111.1111(16个1),111.1111(16个1)是-1的二进制?
65535是2的16次方再减1,为什么就是16个一啊

为什么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字节了,你困惑的这个问题已转移到更大的数上去了.其实计算机里没有什么正数、负数,都是些0、1符号,代表什么数看编程者怎么对待了.就说这111.1111(16个1),在16位整型平台下,编程者如果认为是无符号数,那就是65535,而如果编程者认为是有符号的,那就是-1了.所以不要困惑.
如果你是学C的,用下面的语句来理解我上面的回答——
#include "stdio.h"
void main(void){
\x09int a=0xFFFF;//这就是16个1
\x09printf("%d %u\n",a,a);
}