整型数据以补码的形式存放在内存中

        在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;

        同时,加法和减法也可以统一处理(cpu只有加法器),此外补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。

例如运算1-1的时候,由于cpu只有加法器,实际上是计算1+(-1):

      1的原码: 00000000 00000000 00000000 00000001

     -1的原码:   10000000 00000000 00000000 00000001

如果使用原码计算,得到的是:

        100000000 00000000 00000000 00000010

转化为十进制是:-2,并不是想要的结果

        1的补码:00000000 00000000 00000000 00000001

       -1的补码:11111111 11111111 11111111 11111110

使用补码计算的结果是:

        1 00000000 00000000 00000000 00000000

        共有33位,整型只能存放32位置,最高位被丢弃

所以,转化为十进制是:0

 负数的原码和补码之间的转换:

原码 -->补码

反码:原码符号位不变,其余位取反

补码:反码加1

补码 -->原码

第一种:补码符号位不变,其余位取反再加一得到原码

第二种:补码减1,符号位不变,其余位取反得原码

-10

       原码:10000000 00000000 00000000 00001010

       反码:11111111 11111111 11111111 11110101

       补码:11111111 11111111 11111111 11110110

补码取反:10000000 00000000 00000000 00001001

         加1:10000000 00000000 00000000 00001010(得到原码)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值