数值数据的编码【笔记】

1.求一个负数的补码,先求出这个负数对应的正数的原码,连同符号位按位取反,末位加一。

2.已知一个负数的补码,如何求其真值?

  将这个负数的补码,连同符号位按位取反,末位加一,就是这个负数真值的绝对值,再调整其符号位。

3.补码的符号位扩展

  (1)定点小数:后面直接添“0”。

  (2)定点整数:一个正数的补码(n位)要用(2n)位表示,直接在这个正数补码的前面添加n个“0”。

         一个负数的补码(n位)要用(2n)位表示,直接在这个负数补码的前面添加n个“1”。

         也就是说,直接在定点整数的补码前面添加符号位即可。

4.补码的算术右移(除2运算)

  正数的补码右移,低位舍掉,高位补0

  负数的补码右移,低位舍掉,高位补1

  总之,已知X的补码,求(1/2)X的补码,就是把X的补码整体右移1位,低位舍掉,高位填充原来的符号位。

5.补码的算术左移(乘2运算)

  已知[X],求[2X]。(需增加一位二进制位,或者说将模扩大1倍)

  只需将[X]的各位左移1位,末位补0。

6.变形补码:采用双符号位。左符是真正的符号位,右符用来判别“溢出”。

  当使用变形补码(双符号位)进行运算时,若运算结果的两个符号位相同,则不发生溢出;若运算结果的两个符号位相异,则结果溢出。此时,最高位为符号;次高位为溢出的数值而非符号。

7.在计算机中,有符号整数用补码表示;浮点数的阶码用移码表示,浮点数的尾数用原码表示,尾数的符号位在最高位(第1位)。

8.移码与补码之间的转换:符号位取反即可。

 

posted @ 2021-01-26 17:12  One7  阅读(128)  评论(0编辑  收藏  举报