计算机是如何存储整数的

一、概述

目前的计算机的最小存储单位是字节(8bit),对于不同大小的整数分别使用
1个、2个、4个、8个字节存储。但实际存储的2进制位是什么样的呢?

二、整数的存储

  • 0 : 全是0表示
  • 正整数 : 直接转换为2进制存储
  • 负整数 : 使用补码形式存储。
    以8位存储进行学习

三、正整数的2进制存储----源码

把正整数换为2进制,然后凑够8位,不够添0,第一位理解为符号位。

10=8+2=1010=0b00001010
11111111=255

思考: 1个字节能够表示最大的整数是多少?

四、负整数的2进制存储(补码)

(一)、求其绝对值的2进制表示(类似于正数)----原码

|-5|=5=0b00000101

(二)、然后每位取反------反码

0b00000101
0b11111010

(三)、然后+1得到补码-------补码

0b11111010+1=0b11111011
即-5=0b11111011

五、负数为什么用补码表示

一个数用什么样的2进制序列表示都可以,只要保证一一对应关系。

(一)、为什么不用直接表示法呢?

如果第一位是符号位,则:

5= 0000 0101
-5= 1000 0101
--------------求和
-10=1000 1010

(二)、使用补码的好处?

答:便于计算,如:

5= 0000 0101
-5= 1111 1011
---------------求和
1 0000 0000 (超过8位,溢出不要)得到0

思考:-128的2进制是什么?

六、总结

  • 如果最高位是0,则表示是正数,如果是1则表示负数
  • 根据补码规则,-1=0b1111 1111;-127=0b1000 0001
  • 根据补码规则,0b1000 0000=-128(-127-1=0b1000 0001-1)
  • 8位2进制能表示的整数范围是(-128~127)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容