为什么十进制数的二进制表示的位数是16==5?
这个问题可能不是典型的 stackoverflow,但我不知道在哪里问我的这个小问题。
问题:
求十进制数 16 的二进制表示形式的位数?
现在我尝试使用公式 $2^n = 16 \Rightarrow n = 4$ 来解决这个问题,但是我的模块建议的正确答案是 5。有人能解释一下吗?
读完一些答案后,(而且我还有 10 个薄荷糖才能接受正确的答案)我认为这可能是一个解释,这将与数学公式一致,
为了表示 16,我们需要表示 17 个符号(0, 16),因此 $2^n = 17 \Rightarrow n = 4.08746$ 但由于 n 需要是整数,因此 $n = 5$
This question not probably not typical stackoverflow but am not sure where to ask this small question of mine.
Problem:
Find the number of bits in the binary representation of decimal number 16?
Now I tried to solve this one using the formula $2^n = 16 \Rightarrow n = 4$ but the correct answer as suggested by my module is 5. Could anybody explain how ?
After reading some answer,(and also I have 10 more mints before I could accept the correct answer)I think this is probably an explanation,that will be consistent to the mathematical formula,
For representing 16 we need to represent 17 symbols (0,16), hence $2^n = 17 \Rightarrow n = 4.08746$ but as n need to be an integer then $n = 5$
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
想想二进制是如何工作的:
因此 16 就是:10000
Think of how binary works:
Thus 16 would be: 10000
使用 4 位,您可以表示从 0 到 15 的数字。
所以是的,你需要 5 位来表示 16。
With 4 bits, you can represent numbers from 0 to 15.
So yes, you need 5 bits to represent 16.
因此,对于十进制 31 以内的任何数字,您只需要 5 位。
So for anything up to decimal 31 you only need 5 bits.
这是一个典型的栅栏错误。
如您所知,计算机喜欢从 0 开始计数。
因此,要表示 16,您需要位 0、1、2、3 和 4(=floor(log2(16)))。
但要实际包含位 0 到 4,您需要 5 位。
This is a classic fencepost error.
As you know, computers like to start counting from 0.
So to represent 16, you need bits 0, 1, 2, 3 and 4 (= floor(log2(16))).
But to actually contain bits 0 to 4, you need 5 bits.