注:数0的补码表示是唯一的: +0的补码=+0的反码=+0的原码=00000000 -0的补码=11111111+1=00000000(mod 2
上面是百度百科说的。计算机中+0(00000000)表示0,而-0(10000000)表示-128.而计算机保存的是数的补码(对吧),如果+0和-0的补码一样,那不是会出...
上面是百度百科说的。计算机中+0(00000000)表示0,而-0(10000000)表示-128.而计算机保存的是数的补码(对吧),如果+0和-0的补码一样,那不是会出现混乱吗?
展开
2个回答
2013-09-22
展开全部
正数的原码,反码,补码都是一样的,0的原码和反码都有两个,但是0的补码是唯一的。
负数的原码是机器字长的首个数值位为1;反码是原码除首位为1外,其他数值取反,(1变成0,0变成1);补码就是反码再加1。
假设机器字长8位,则
-0的原码1000,0000, -0的反码就是1111,1111,-0的补码就是反码加1后变成1,0000,0000,首位溢出后抛弃,变成-0的补码还是0000,0000。
个人感觉有+0和-0才会出现混乱,数学上的1+(-1)=0,那到计算机里应该是-0还是+0啊,(反正自己没法理解+0和-0),最后只能用补码来进行负数的计算,结果才会正确。
负数的原码是机器字长的首个数值位为1;反码是原码除首位为1外,其他数值取反,(1变成0,0变成1);补码就是反码再加1。
假设机器字长8位,则
-0的原码1000,0000, -0的反码就是1111,1111,-0的补码就是反码加1后变成1,0000,0000,首位溢出后抛弃,变成-0的补码还是0000,0000。
个人感觉有+0和-0才会出现混乱,数学上的1+(-1)=0,那到计算机里应该是-0还是+0啊,(反正自己没法理解+0和-0),最后只能用补码来进行负数的计算,结果才会正确。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询