一个字节表示的有符号整数范围为什么是[-128, 127]

本文通过模的性质解释了计算机中减法转换为加法的原理,并以一个字节为例,详细阐述了有符号整数在计算机内以补码形式存储的原因,分析了为什么一个字节能表示的有符号整数范围是[-128, 127],涉及到二进制加法、补码和模的概念。" 132727755,19687570,使用Boost.Contract实现函数重载测试,"['C++', '编程', '开发语言', 'Boost库']
摘要由CSDN通过智能技术生成

首先计算机只会加法, 所以减运算会被替换为加运算, 即:
5 - 2 = 5 + (-2)

模的性质: 以时钟为例, 12个小时时针走一圈, 12便是时钟的模, 倘若时针当前指向的数字是8, 减3个小时那么时针指向的数字就是5; 但是加上9个小时时针指向的位置也是5, 因为3和9在12这个模上是互补的(3 + 9 = 12), 所以-3跟+9的效果是一样的. 即减一个数字跟加一个与此数字在模上的补数最后结果是相同的.

以一个字节(8位)的大小为例, 在不设符号位的情况下可表示的范围是00000000 ~ 11111111, 即[0, 255]共256个数, 所以一个字节的模是256.
根据上面所说, 5 + (-2) 就等价于 5 + (256 -2) = 5 + 254
5 ( 2 ) 5_{(2)} 5

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值