负数原码,反码和补码相互转化

负数原码,反码和补码相互转化


负数在计算机中通常使用三种表示法:原码、反码和补码。下面是它们之间的相互转化方法:

原码:

原码是用最高位表示符号(0表示正数,1表示负数),其余位表示数值的绝对值。
例如,-5的原码在8位表示中是:10000101(符号位1,表示负数,后面的0000101是5的二进制表示)。

反码:

反码是将原码的符号位保持不变,数值部分取反(0变1,1变0)。
例如,-5的原码是10000101,其反码为:11111010(符号位1不变,数值部分0000101取反变成1111010)。

补码:

补码是反码加1。
例如,-5的反码是11111010,其补码为:11111011(11111010 + 1)。

转化过程

从原码到反码:

如果是负数,保持符号位不变,数值部分取反。
如果是正数,原码和反码相同。

从反码到补码:

反码加1。

从补码到反码:

补码减1得到反码。
反码的符号位保持不变,数值部分取反。

从反码到原码:

如果是负数,反码取反得到原码。
如果是正数,反码和原码相同。

从补码到原码:

先将补码转换为反码(补码减1得到反码)。
再将反码转换为原码。

示例
假设我们以8位二进制表示-5:

原码:10000101
反码:11111010
补码:11111011

如果要从补码11111011转换回原码:

先得到反码:11111011 - 1 = 11111010
得到原码:11111010取反得到10000101

这样就完成了负数在原码、反码和补码之间的转化。
该博文为原创文章,未经博主同意不得转载。本文章博客地址:https://cplusplus.blog.csdn.net/article/details/140887933

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源代码大师

赏点狗粮吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值