原码、反码、补码、移码、尾码、阶码

一开始学原码反码补码移码、尾码、阶码这些码时,一个词头晕目眩。对我而言,在夜深人静的时候慢慢的去体会这些码,就像回到高中,在研究一道大家都不会的物理题,这只有经历过的人才能体会到其中的奥妙。

学习这些码,只要是理解。

 

原码

是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位),该位为0表示正数,该位为1表示负数,其余位表示数值的大小。
原码的优点是简单直观,特点是符号位与数值位在运算时要区别对待。
例如 4的 原码就是 0100

 

反码

正整数的反码就是其自身,而负整数的反码可以通过对其绝对值逐位求反来求得。在反码表示法中,符号位仍然是0表示正号,1表示负号。数值0用反码表示也有+0和-0之分。
例如:当n=8时,[+0]反=00000000,[-0]反=11111111

 

补码

(1)正数的补码:与原码相同。 例如,+9的补码是00001001。
(2)负数的补码:符号位为1,其余位为该数绝对值的原码按位取反;然后整个数加1。
例如,-7的补码:因为是负数,则符号位为“1”,整个为10000111;其余7位为-7的绝对值+7的原码
0000111按位取反为1111000;再加1,所以-7的补码是11111001。
已知一个数的补码,求原码的操作分两种情况:
(1)如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。
(2)如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,其余各位取
反,然后再整个数加1。
例如,已知一个补码为11111001,则原码是10000111(-7)

 

移码(

又叫增码)是符号位取反的补码,一般用做浮点数的补码,引入的目的是为了保证浮点数的机器零为全0。

①移码的定义:设由1位符号位和n位数值位组成的阶码,则 [X]移=2En + X     -2n≤X ≤ 2n
例如: X=+1011     [X]移=11011     符号位“1”表示正号
             X=-1011     [X]移=00101     符号位“0”表示负号

②移码与补码的关系: [X]移与[X]补的关系是符号位互为相反数(仅符号位不同),
例如: X=+1011     [X]移=11011     [X]补=01011
             X=-1011     [X]移=00101     [X]补=10101

③移码运算应注意的问题:
◎对移码运算的结果需要加以修正,修正量为2En ,即对结果的符号位取反后才是移码形式的正确结果。
◎移码表示中,0有唯一的编码——1000…00,当出现000…00时(表示-2En),属于浮点数下溢。
移码(又叫增码)是符号位取反的补码,一般用做浮点数的补码,引入的目的是为了保证浮点数的机器零为全0。

 

尾码,阶码

对于任意一个二进制数N,可用N=S*2P表示,其中S为尾数,P为阶码,2为阶码的底,P、S都用二进制数表示,S表示N的全部有效数字,P指明小数点的位置,当阶码为固定值时,数的这种表示法称为定点表示,这样的数称为定点数;当阶码为可变时,数的这种表示法称为浮点表示,这样的数称为浮点数 

 

    

  正数                     负数                                      
  原码   就是其自身   把其绝对值的原码的符号位置1即可    
  补码   就是其自身   其符号位不动,其他部分变反加1      
  反码   就是其自身   其符号位不动,其他部分变反      
  移码   将对应补码的符号位直接变反即可

  • 13
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值