|
发表于 2022-10-21 17:38:15
|
显示全部楼层
本帖最后由 howzyao 于 2022-10-21 17:42 编辑
我也是早学几天的初学者,我的理解:
首先,char值域是:
0x0000 0000 这么长
整型值域:
0x0000 0000 0000 0000== 0
0x0000 0000 0000 0001== 1
0x1000 0000 0000 0000== -0
0x1000 0000 0000 0001== -1
0x0111 1111 1111 1111 == 128 + [ +1+2+4+8 + 16 +32 + 64 +(128==0) ] = 127 == 128 + 127 = 255
因此,127+1 ==128 +上之前的8个1也是128 == 256
256表示为:
0x1111 1111 1111 1111
明显,最高位(个人喜欢叫它最左位)这是一个不能被占用的位,所以只能少一个最高位,而最高位表达的是128,
此时少一个128,所以一个整型,最大只能是255
char的视角看int,int就太长了,只能是127最大char了,因为最左位不能是1.
大家来说说这理解的对吗 |
|