机器数
通常称一个数值数据的机内编码为机器数。该机器数所代表的数值成为它的真值。
-
原码
-
整数:
[x]的原码={0X, 2n−X,0≤X<2n−2n≤X<0
-
小数:
[x]的原码={X, 1−X,0≤X<1−1≤X<0
-
补码
-
整数:
[x]的补码={0X, 2n+1+X,0≤X<2n−2n≤X<0
-
小数:
[x]的补码={X, 2+X,0≤X<1−1≤X<0
-
也可以这样:
- 若为正数,补码=0+真值,这里0表示符号为正
- 反之,补码=1+(数值位取反+1),这里第一个1表示符号为负,第二个1表示大小1
-
反码
-
整数:
[x]的反码={0X, 2n+1−1+X,0≤X<2n−2n≤X<0
-
小数:
[x]的反码={X, (2−2−n)+X,0≤X<1−1≤X<0
-
移码
-
移码只用于整数
[x]的移码=2n+X
总结:
-
对于原码、补码、反码三种机器码:
- 符号位取1表示负数,取0表示正数。
- 当真值为正数时,原码=反码=补码
- 当真值为负数时,形式为:1(符号位) 其余数值位
-
对于移码:
- 最高一位为符号位,与其他三种机器码相反,1表示正数,0表示负数
- 移码只用于表示浮点数的阶码,所以它只能用于整数。
参考
- 上课老师所讲笔记
- 《计算机组成与体系结构》(清华大学出版社版本)
转载:
https://blog.csdn.net/weixin_43889841/article/details/102593339