想了一个上午都不懂,-1在内存中的存放的二进制码为1111111111111111,这是为什么?看不懂了

2024-11-11 14:32:03
推荐回答(2个)
回答1:

-1内存中是以补码的形式存放的,即二进制表示的 取反,再加1;

如-1:最左边是符号位,1表示负数。

1的二进制为000000000000001,取反为111111111111110,再加1即为111111111111111;所以整体就是上面的1111111111111111。

整型在内存中以补码形式保存,对于16位机来说,-1的原码是1 0000000 00000001,其补码就是1 1111111 11111111。

扩展资料:

假设当前时针指向8点,而准确时间是6点,调整时间可有以下两种拨法:一种是倒拨2小时,即8-2=6;另一种是顺拨10小时,8+10=12+6=6,即8-2=8+10=8+12-2(mod 12).在12为模的系统里,加10和减2效果是一样的,因此凡是减2运算,都可以用加10来代替。

若用一般公式可表示为:a-b=a-b+mod=a+mod-b。对“模”而言,2和10互为补数。实际上,以12为模的系统中,11和1,8和4,9和3,7和5,6和6都有这个特性,共同的特点是两者相加等于模。

参考资料来源:百度百科-补码

回答2:

-1内存中是以补码的形式存放的,即二进制表示的 取反,再加1;
如-1:
最左边是符号位,1表示负数。1的二进制为000000000000001,取反为111111111111110
,再加1即为111111111111111;
所以整体就是上面的1111111111111111