所需位数的计算

发布于 2024-10-03 09:22:16 字数 143 浏览 3 评论 0原文

我需要这方面的帮助,

有人问我对于 1 到 10 亿范围内的无符号整数,需要多少位!

我们如何计算这个?

谢谢

更新!!!!

这是我想知道的,因为面试官说17

I need help with this

I was asked that for an unsigned integer range 1 to 1 billion, ,how many bits are needed!

How do we calculate this?

Thank you

UPDATE!!!!

This what I wanted to know because the interviwer said 17

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

蹲墙角沉默 2024-10-10 09:22:16

取 10 亿以 2 为底的对数并向上舍入。

或者,您应该知道整数(超过 40 亿个值)需要 32 位,因此对于 20 亿个值,您需要 31 位,对于 10 亿个值,需要 30 位。

另一件需要知道的方便的事情是,每 10 位都会增加您可以用略高于 1000 (1024) 的因子表示的值的数量,因此对于 1000,您需要 10 位,100 万需要 20 位,10 亿需要 30 位。

Take the log base 2 of 1 billion and round up.

Alternatively, you should know that integers (with over 4 billion values) require 32-bits, therefore for 2 billion you'd need 31-bits and for 1 billion, 30-bits.

Another handy thing to know is that every 10 bits increase the number of values you can represent by a factor just over 1000 (1024), so for 1000, you need 10 bits, 1 million needs 20 bits, and 1 billion needs 30 bits.

书间行客 2024-10-10 09:22:16

计算 log2(1000000000) 并将其向上舍入。计算结果为 30 位。

例如,在 Python 中,您可以这样计算:

>>> import math
>>> math.ceil(math.log(1000000000, 2))
30.0

Calculate log2(1000000000) and round it up. It works out to 30 bits.

For example in Python you can calculate it like this:

>>> import math
>>> math.ceil(math.log(1000000000, 2))
30.0
请止步禁区 2024-10-10 09:22:16
2^10 = 1024
2^10 * 2^10 = 2^20 = 1024*1024 = 1048576
2^10 * 2^10 * 2^10 = 2^30 = 3 * 1024 ~= 1,000,000

=> 30 位

2^10 = 1024
2^10 * 2^10 = 2^20 = 1024*1024 = 1048576
2^10 * 2^10 * 2^10 = 2^30 = 3 * 1024 ~= 1,000,000

=> 30 Bits

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文