原码
计算步骤:
- 先化为
2进制
- 正数
不用计算
在前面加0
(就是他本身),负数在前面加1
如:
- x = + ( 1001 )2 , 则 [x]原 = ( 01001 )2
- x = - ( 1001 )2 , 则 [x]原 = ( 11001 )2
案例:求 - 13 / 64
的原码
-13/64
=-(8+4+1)/64=-
(1/8
+1/16
+1/64
)=(-0.001101)2,所以[x]原=1.001101
解释:1/8
= 2-3 化为2进制为 (0.001)2 ,1/16
= (0.0001)2 ,1/64
= (0.000001)2
反码
计算步骤:
- 先化为
2进制
- 正数
不用计算
在前面加0
(就是他本身),负数在前面加1
- 每一位数都
进行2进制的取反
(1 取反为 0 ,0取反为1)
如:
- x = + ( 1001 )2 , 则 [x]反 = ( 01001 )2
- x = - ( 1001 )2 , 则 [x]反 = ( 10110 )2
案例:求 - 13 / 64
的反码
-13/64
=(-0.001101)2,所以[x]反=1.110010
补码
计算步骤:
- 正数
不用计算
在前面加0
(就是他本身) - 负数计算:
- 方法一(最简单):反码最后一位(2进制最后)+ 1
- 方法二:用公式
- 小数:[x]补 = 2 - | x |
- 整数:[x]补 =2 n+1 - | x | , -2 n <= x <= 0
只演示方法一(方法二要记公式):
如:
- x = + ( 1001 )2 , 则 [x]补 = ( 01001 )2
- x = - ( 1001 )2 , [x]反 = ( 10110 )2,[x]补 = ( 10111 )2
案例:求 - 13 / 64
的补码
-13/64
=(-0.001101)2,[x]反=1.110010
,所以[x]补=1.110011
移码
计算步骤:
- 方法一(简单):在补码的基础上,符号位取反
- 方法二:[e]移 = 2k + e , -2k <= e <= 2k
只演示方法一(方法二要记公式):
如:
- x = + ( 1001 )2 , [x]补 = ( 01001 )2,[x]移 = ( 11001 )2
- x = - ( 1001 )2 , [x]反 = ( 10110 )2,[x]补 = ( 10111 )2,[x]移 = ( 01001 )2
案例:求 - 13 / 64
的补码
-13/64
=(-0.001101)2,[x]反=1.110010
,[x]补=1.110011
,[x]移=0.110011
本文链接:https://my.lmcjl.com/post/13550.html
展开阅读全文
4 评论