整数在内存中如何存储

整数在内存中的存储


在计算机内存中,整数一律采用补码的形式来存储。这意味着,当读取整数时还要采用逆向的转换,也就是将补码转换为原码。将补码转换为原码也很简单:先减去 1,再将数值位取反即可。
我们先来解以下几个概念

在这里插入图片描述

  1. 原码
    将一个整数转换成二进制形式,就是其原码。例如 short a = 6;,a 的原码就是 0000 0000 0000 0110;更改a 的值 a = -18;,此时 a 的原码就是 1000 0000 0001 0010。
    通俗的理解,原码就是一个整数本来的二进制形式。
  2. 反码
    对于正数(原码反码相同);对于负数,负数的反码是将原码中除符号位以外的所有位取反(1变成0,0变成1)。例如 short a = 6;,a 的原码和反码都是 0000 0000 0000 0110;更改 a 的值 a = -18;,此时 a 的反码是 1111 1111 1110 1101。
  3. 补码
    对于正数,它的补码就是其原码(原码、反码、补码都相同);负数的补码是其反码加 1。例如 short a = 6;a 的原码、反码、补码都是 0000 0000 0000 0110;更改 a 的值 a = -18;,此时 a 的补码是 1111 11111110 1110。

最后,进行总结:

  • 正数的原码、反码、补码相同
  • 负数的原码是其二进制形式,补码是原码中除符号位以外所有位取反。负数补码是其反码加1。
  • 正数二进制最高位的符号位为0
    在这里插入图片描述
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值