4

我是一个相当新的程序员,我想知道是否有人可以给我一个实用的解释/示例,说明使用有符号、无符号和 32 位与 64 位之间的区别和用途?

即,我阅读了一篇关于 Twitter 去年如何让开发人员切换到 64 位的文章,但我不确定其中的原因和具体性质。

谢谢!

4

1 回答 1

3

对于 n 位,您可以有 2^n 个由这些位表示的不同数字。所以 32 位无符号数从 0 变为 4,294,967,295(2^32-1,-1 是因为 0 是有效数字)。带符号的数字将这 40 亿平均分为正数和负数。32 位计算机在其内存地址中使用它,这意味着程序可以本地访问 4 GB 内存。64 位计算机的限制为 2^64,这要高得多。

如果您使用 32 位数字来表示其他事物,例如用户、推文或自某个日期以来的秒数,您也会遇到 40 亿的限制。所以 32 位在一定范围内工作得很好,然后在此之上,即使有一些方法可以解决这个限制,但使用 64 位更有意义。

缺点是存储数字需要两倍的内存。

于 2010-08-14T16:59:36.047 回答