5.计算机二进制存储原码、反码、补码的问题

计算机中,数值均以补码形式存储,正数的原码、反码、补码相同。负数的反码由原码符号位不变其余位取反求得,补码等于反码+1。

补码求原码可用相反步骤。

所以欲把计算机存储的二进制转换为相应的十进制数值的一般步骤是:

1)先看这个数是有符号数还是无符号数,若是无符号/正数,则直接转化为十进制;

2)若为负数,则存储的是补码,最高位不变,-1得到其反码,然后最高位不变,其余位全部取法得到原码,然后转化为十进制并添加负号。例:


有符号char类型值的负数部分在计算机中的实际存储状态(以补码形式):


各种进制数的转换打印尤需注意:


例如:


最后需注意:有符号数的最高位为符号位,当二进制数值在原码、反码、补码相互转化时,取反动作均保持最高位不动,而任何情况引起的进位溢出可以改变最高位的1/0状态


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值