0

我正在学习计算机科学,但我无法自己解决问题。

有这个数字:-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

希望你们能帮助我。

4

1 回答 1

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
于 2012-06-05T13:25:08.487 回答