signed char 形 i=255,十进制输出,为什么等于-1?
这是一道课后习题在小甲鱼的课程中,他是这样解释的,signedchar取值范围为-128~127,十进制的i=255即二进制的1111 1111,signed char第一位为符号位,转换为十进制是-1?怎么不是-127?我不明白,请大家指教。我想的另一种解法是,signed char的取值范围为-128~127,共256 个数,255超过取数的范围,共通过映射映到这个范围中去,即255-256=-1;或其他的比如i=254,输出后为254-256=-2; 本帖最后由 人造人 于 2016-4-14 17:28 编辑
1个字节 数值
0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 -1
1 1 1 1 1 1 1 0 -2
1 1 1 1 1 1 0 1 -3
1 1 1 1 1 1 0 0 -4
..................
1 0 0 0 0 0 1 0 -126
1 0 0 0 0 0 0 1 -127
1 0 0 0 0 0 0 0 -128
0 1 1 1 1 1 1 1 127 127 + 1 = -128 (负128)
0 1 1 1 1 1 1 0 126
0 1 1 1 1 1 0 1 125
........
0 0 0 0 0 0 1 1 3
0 0 0 0 0 0 1 0 2
0 0 0 0 0 0 0 1 1
0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 -1
1 1 1 1 1 1 1 0 -2
...........
能看懂吗? 人造人 发表于 2016-4-14 17:27
1个字节 数值
0 0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1 ...
计算机所有的数据存储都是补码是吧,你是这个意思 LG蓝色天空 发表于 2016-4-14 20:04
计算机所有的数据存储都是补码是吧,你是这个意思
能看懂吗?
页:
[1]