原码、反码、补码以及移码的相互转换

1、原码:
数值位不变,用0/1表示符号,0表示正数,1表示负数。
真值:+1001010 原码:01001010
真值:-1001010 原码:11001010
字长为8位的原码表示范围:-127~+127
【+127】原=01111111 【-127】原=11111111
数值“0”有两种原码形式:
【+0】原=00000000 【-0】原=10000000

2、反码:
(1)正数情况:X反=X原
例:X=+1101001(+105) X反=X原=01101001
(2)负数情况:符号位保持为“1”,数值为分别“按位取反”
例:X=-1101001(-105) X原=11101001 X反=10010110
字长为8位的反码表示范围:-127~+127
【+127】反=01111111 【-127】反=10000000
【+0】反=00000000 【-0】反=11111111

3、补码:
【X】补=X+2^n n为编码位数
编码规则:
(1)正数:【X】补=【X】原
(2)负数:符号位仍保持为“1”,其余个数值位“按位取反,末尾再加1”
字长为8位的补码表示范围:-128~+127
【+127】补=01111111 【-128】补=10000000
【+0】补=【-0】补=00000000

4、原码和补码之间的转换:
(1)已知【X】原,求【X】补
例:已知【X】原=10011010,求【X】补。
解:
【X】原=10011010
【X】补=11100101+1=11100110
(2)已知【X】补,求【X】原。
【【X】补】补=【X】原
例:已知【X】补=11101100,求【X】原。
解:
【X】补=11101100
【X】原=10010011+1=10010100
(3)求补(变补),即已知【X】补,求【-X】补。
【X】补的编码连同符号为一起取反,末尾再加1,即得到【-X】补。
例:已知【X】补=01010110,求【-X】补。
解:
【X】补=01010110
【-X】补=10101001+1=10101010

5.移码:
通常只用于表示整数。
对于定点整数X,【X】移=2^(n-1)+X,n是X原的位数。
上述规则等价于将X正向平移或增加2^(n-1),因此被称为移码或增码。
例:
当正数X=+10101时,【X】移=2^5+X=110101
当负数X=-10101时,【X】移=2^5+X =001011
移码的表示范围与补码一致,0也只有一个移码。
正数:将原码符号取反,即得到移码;
负数:将原码连同符号为一起取反,末尾再加1(与变补等效)。
补码和移码:符号相反,数值位相同。

补码表示与变补运算的区别:
补码表示:符号位不变;负数尾数改变,整数位数不变
10101原->11011
00101原->00101
变补运算:符号位变反,尾数变反,末尾加1
10011补->01101
00011补->11101
【-Y】补也称【Y】补的机器负数。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值