带符号数的表示

上一节,我们学习了进位计数制及其相互转换,这次我们来看下计算机中带符号数的表示

在一般算术表示中使用“+”和“-”来表示正数与负数,而在计算机中使用“0”和“1”来表示正数和负数

用“+”或“-”表示正负的数叫真值
用“0”或“1”表示正负的数叫机器数

原码表示
二进制数的最高位表示符号,0表示正,1表示负,数值部分用二进制数绝对值表示
注:8位二进制数原码的最大数为01111111(+127),最小数为11111111(-127)0的原码有两种表示形式:00000000和10000000(+0和-0)
补码表示

  • 补码的定义:带符号数X的补码表示[X]定义为[X]=M+X(Mod M),其中模数M根据机器数的位数而定,如位数为8则M=28
  • 用补码表示的机器数,符号位仍然表示数的符号:0为正,1为符。对于正数,补码与原码相同,对于负数需要进行变换。
  • 由真值,原码变换为补码:由于正数的原码与补码相同,下面讨论负数的变换方法

1.负数的真值变换为补码的方法:将各位变反(0变1,1变0)然后在最低位加1
2.负数的原码变换为补码:保持符号位不变,其余各位变反,最低位加1
例:将-59变换为补码
真值 -00111011
原码 10111011
变反 11000100
加1 11000101

注:当位数为8时,最大补码为01111111=[+127],最小补码为10000000=[-128](这考虑进位),0的补码只有一个,[0]=00000000,[-128]=10000000,[-1]=11111111

  • 补码的加减运算

规则:[X+Y]=[X]+[Y]
[X-Y]=[X]-[Y]=[X]+[-Y]
注:其中[-Y]是对[Y]执行一次求补运算(求补运算是将原数连同符号位一起(不管是正还是负)按位求反,再在最低位加1)

例:X=24 Y=8,求[24-8]
16 原码 00010000
16 补码 00010000
24 原码 00011000
24 补码 00011000
8的原码 00001000
8的补码 00001000
00011000-00001000=00010000
[-8]是对[8]进行求补运算,即11111000
00011000+11111000=100010000

上面的作为入门吧,下面的这篇文章更详细,大家可以参考下【详解】原码-反码-补码

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一只学弱狗!

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值