我是一个相当新的程序员,我想知道是否有人可以给我一个关于使用有符号,无符号和32位与64位之间的差异和用法的实用解释/示例?
即。我读了一篇关于Twitter如何让开发人员去年切换到64位的文章,但我不确定它的推理和具体性质。
谢谢!
答案 0 :(得分: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位。
缺点是存储数字需要两倍的内存。