2s补码和按位运算

时间:2014-02-07 01:33:29

标签: bit-manipulation bits twos-complement

所以我正在做一些功课,我对这个当前的问题感到非常难过。

Assume that there are 73 students in your class. If every student is to be assigned a unique bit pattern, what is the minimum number of bits to this? And Why?

我不知道如何解决这个问题,is it 73!?如果不是,我如何确定此解决方案

谢谢你们所有的答案......解决了:D

3 个答案:

答案 0 :(得分:2)

评论中有一些优雅的数学解决方案,但想到这样:

1 bit gives you two possible bit patterns.
2 bits gives you four
3 bits gives you eight
.
.
.
.

以相同的方式继续,直到你有多个比特模式大于学生数。

答案 1 :(得分:1)

您必须能够以二进制形式表示73个数字。您可以很容易地注意到,[0, 72]范围内有73个数字,因此您需要多少位来表示二进制数72.

2^6 = 64 < 72 < 128 = 2^7

所以你需要7位代表73个不同的数字。

答案 2 :(得分:1)

由于位可以简单地被认为是二进制数字,我们可以将base-10 72转换为base-2 1001000并确定我们的答案,即此基数中的位数-2号码,7。要获得号码72,请考虑我们可以将号码0分配给其中一位学生。

获得答案的另一种方法是找到n的最小2^n > 73