带符号二进制数的表示方法与常用编码

带符号二进制数的表示方法与常用编码

1.原码
字长最高位为符号位,正号用0表示,负号用1表示。
当字长为n位时,X=xn-1 xn-2 … x1 x0

  • 整数

0 <= X < 2n-1     X原码=X
-2n-1 < X < 0     X原码=2n-1-X = 2n-1+|X| = 符号位为1,其余各位与数值相同

  • 小数
    0 <= X < 1  X原码=X
    -1 <X <= 0  X原码=1+|X| = 1.xn-1 xn-2 … x1 x0

2.反码

  • 整数
    0 <= X < 2n-1  X反码=X
    -2n-1< X <= 0  X反码=( 2n-1)+X = 符号位保持不变,其余各位按位取反。
  • 小数
    0<= X <1  X反码=X
    -1<X<=0   X反码=( 2-2-(n-1))+X



3.补码

  • 整数
    0 <= X < 2n-1  X补码=X
    -2n-1< X <= 0  X补码=-2n+X = X反码+1

  • 小数
    0<= X <1   X补码=X
    -1<X<=0   X补码=2+X=X反码+ 2-(n-1)

负数的X补码可以由X反码最低位加1实现。


4.带符号数的加减法运算
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
带符号数的加减法运算是由补码来实现的,减去一个数是加上该数负数的补码。
[X+Y]补码=[X]补码+[Y]补码=直接相加,符号位的进位溢出直接扔掉

5.溢出原因
最高数值位有进位,符号位无进位
最高数值位无进位,符号位有进位
即最高数值位与符号位进位情况相同时才不会溢出。
eg.

  1. X=7=0111B
    Y=10=1010B
    X补码+Y补码=00111+01010=10001(溢出) (最高数值位有进位,符号位无进位)

  2. X= -7 = -0111B
    Y= -10 = -1010B
    X补码+Y补码=11001+10110=101111(溢出)(符号位有进位,最高数值位无进位)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值