我们可以用N位表示的数字范围是多少?



对于无符号整数,我们可以表示范围从

0 至 2N- 1

对于像 two 补码这样的有符号整数,范围是

-2(N-1( 至 2(N-1( - 1

如何计算有符号范围?

对于无符号整数:
我们使用所有N位来表示范围从0 to 2^N - 1的数字,这是因为如果我们使用所有 N 位位置并通过在每个位置放置01来计算不同的配置,我们可以得到最大整数2^N - 1(即11...upto N times(和最低整数为0(即00..upto N times(。因此,可以表示从02^N - 1的所有值。

对于有符号整数:
这里我们基本上使用N-1位来表示整数1位专门用于确定该整数的符号。因此,我们可以表示从-2^(N-1)2^(N-1) - 1的数字。最高有效1位表示负整数,而最高有效位0表示非负整数值。在这里,我们可以表示从-1-2^(N-1)的负数,因为我们可以使用所有N位的数字作为1。基本上,编译器使用二进制的补码表示来表示整数。

这是交易。让我们做 2 位,所以N=2.

我们得到Range=-2 to 1,即它可以表示-2,-1,0,1

现在如果N=4,我们有Range=-8 to +7.

我不明白你被困在哪里。

最新更新