二进制超额表示法

时间:2012-05-31 23:16:29

标签: binary type-conversion computer-science

我正在学习计算机科学,我无法想象自己的东西。

有这个数字:-233使用10位表示

我需要做的是用超额表示法表示数字(2^n-1)

所以,我想出了:

1 base 10 = 0000000001

2^10-1 = 1000000000

我的符号中的1个基数10 = 1000000001

所以,我的-256是0000000001

我的255是1111111110

此符号后的-233号是什么?

本书的结果是0 1 0 0 0 1 0 1 1 1

我的结果:0 0 0 0 0 1 0 1 1 1

希望你们能帮帮我。

1 个答案:

答案 0 :(得分:1)

我认为你走的是正确的道路,但只是做了一个小错误。

由于我不熟悉这种符号,我不得不先看看它。似乎K通常被选为2 ^(n-1)= 2 ^ 9 = 512.这意味着00 0000 0000 = -512和11 1111 1111 = 511.我不知道你是怎么得到的 - 256,也许是你的错误。

现在,从-512(00 0000 0000)到-233,差异为279(01 0001 0111)。这似乎是你的例子的结果。

为了便于施工,您可以这样做(假设K = 2 ^(n-1)) - 示例编号-12:

  • 使用正值的二进制表示(12)。 00 0000 1100
  • 添加K(2 ^(n-1)):10 0000 1100
  • 反转所有位:01 1111 0011
  • 添加1(因为零值):01 1111 0100