【计组】2.1.3.带符号的整数的表示和运算

带符号的整数的表示和运算

名词解释

  • 带符号整数:即 “整数”,-2、-1、0、1、2、3…
short a = 1;	//带符号整数(短整型)
int b = 2;		//带符号整数(整型)
  • 带符号整数可用 原码、补码、反码 表示,同一个含义,相当于用不同的编码方式表示

记忆点

  1. 原码:
    • 符号位 0/1 表示 正/负,剩余的数值位表示真值的绝对值
    • 若机器字长为 n+1 位,带符号整数原码表示范围是 − ( 2 n − 1 ) ≤ x ≤ 2 n − 1 -(2^n-1) \leq x \leq 2^n-1 (2n1)x2n1
    • 真值 0 有两种形式:+0 = -0, [ + 0 ] 原 = 0 , 0000000 [+0]_原=0,0000000 [+0]=0,0000000 [ − 0 ] 原 = 1 , 0000000 [-0]_原=1,0000000 [0]=1,0000000
    • 缺点:符号位不能够参与运算,需要设计复杂的硬件电路,费钱!
  2. 补码:
    • 可参与符号为的运算
  3. 负数原码和补码互相直接转换
    • 从右往左找到第一个1,这个1的左边所有数值位按位取反
  4. 补码的减法: [ A ] 补 − [ B ] 补 = [ A ] 补 + [ − B ] 补 [A]_补-[B]_补=[A]_补 + [-B]_补 [A][B]=[A]+[B]
  5. 负值补码转换规则,如: [ 19 ] 补 = 0 , 0010011 , [ − 19 ] 补 = 1 , 1101101 [19]_补=0,0010011,[-19]_补=1,1101101 [19]=0,0010011[19]=1,1101101
    • 全部位按位取反,再末尾+1
    • 也可以从右往左找到第一个1,这个1的左边所有数值位按位取反

原码表示

即人类能够理解的数值,记作 x = − 19 , [ x ] 原 = 1 , 0010011 x=-19, [x]_原=1,0010011 x=19,[x]=1,0010011,若未指明机器字长也可以写成 [ x ] 原 = 1 , 10011 [x]_原=1,10011 [x]=1,10011
在这里插入图片描述

原码、反码、补码转换

原码->补码:正数不需要做任何变换,负数则符号位不变,取反+1
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农小易

你的鼓励将是我持续写作的动力!

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

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

打赏作者

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

抵扣说明:

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

余额充值