如何将较大的负小数转换为二进制?例如 -513



我尝试使用以下方法解决:- 将绝对值转换为二进制。- 做2的补语。但是我遇到的问题是我应该使用多少位来表示 513 的绝对值?谢谢。

> http://en.wikipedia.org/wiki/2%27s_complement

从维基百科来看,N 位的二进制数可以表示介于 −2^(N-1( 到 +2^(N − 1( − 1 之间

其中 2^X 是 X 的 2 次方。

问表示 513 需要多少位没有多大意义。你可以用一个位来表示它,其中 1 代表 513,0 代表其他东西。您需要询问我需要多少位来表示一系列数字。

正如我上面提到的,使用 2 的补码,您最多可以表示 (2^(N-1(-1( 个正数和 2^(N-1( 个负数。因此,假设您要表示 [-513..513],则需要 11 位。

这是因为 2^(11-1( 等于 1024。这样,您将能够在 2 的补码中表示从 -1024 到 1023 的数字。选择 N = 10 会给你 -512 到 511 之间的数字,这还不够。

我希望这有所帮助。

最新更新