2013-03-17 127 views

回答

21

随着十进制数系统中,每个编号位置(或列)表示(从右到左读取的数字):单元(它是10^0), (即10^1),数百(即10^2)等等。

无符号二进制数,基数为2,因此每个位置变成(再次从右向左读取):1(即2^0),2(即2^1),4(即,2^2)等

例如

2^2 (4), 2^1 (2), 2^0 (1). 

在有符号二进制补码中,最高有效位(MSB)变为负数。因此它代表数字符号:'1'表示负数,'0'表示正数。

用于3位数字的行将持有这些值:

-4, 2, 1 
0 0 1 => 1 
1 0 0 => -4 
1 0 1 => -4 + 1 = -3 

通过定点保持的位的值(分数)系统是不变。列值遵循相同的模式和以前一样,基座(2)到电源,但与功率变成负值:

2^2 (4), 2^1 (2), 2^0 (1) . 2^-1 (0.5), 2^-2 (0.25), 2^-3 (0.125) 

-1永远是111.000
-0.5添加0.5到它:111.100

在你的情况下,110100.10等于-32 + 16 + 4 + 0.5 = -11.5。你所做的是创建-12然后加0.5而不是减0.5。

你真正想要的是-32 + 16 + 2 + 1 + 0.5 = -12.5 = 110011.1

3

您可以一次又一次地将数字加倍,直到它为负整数或达到定义的限制,然后相应地设置小数点。

-25是11100111,所以-12.5是1110011.1

1

左右;ü要代表-12.5 2的补码表示

12.5: - > > 01100.1

2的的(01100.1)补体: - >> 10011.1

通过检查2的补码代表的加权代码属性验证ANS反对(MSB权重是-ve)。我们会得到-16 + 3 + .5 = -12.5