首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么Int64和UInt64尺寸相同

为什么Int64和UInt64尺寸相同
EN

Stack Overflow用户
提问于 2015-03-03 10:32:25
回答 4查看 5.8K关注 0票数 2

我是在C#的上下文中询问的。为什么Int64UInt64都是一样大小的,即64-bits。其他Int变量也是如此。

我原以为UInt的大小要小一点,因为它不需要表示-符号,我在这里期待的是一些不合逻辑的东西吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-03-03 10:45:01

其根本原因是现代CPU是64-bit CPU。所以实现起来要容易得多

代码语言:javascript
运行
复制
  64-bit integer - one CPU register  (say RAX)
  32-bit integer - half CPU register (EAX)
  16-bit integer - 1/4 (AX)
   8-bit integer - 1/8 (AH)

否则(例如96-bit),您必须设计自己的支持,例如,整数溢出检测等,这将是缓慢的。

票数 4
EN

Stack Overflow用户

发布于 2015-03-03 10:38:20

64Int64UInt64中意味着整数的大小是64位。这就是它们大小相同的原因。

大小相同,但范围不同(也是由于重要的位数):

  • UInt64: 0~ 18,446,744,073,709,551,615;
  • Int64:-9,223,372,036,854,775,808至9,223,372,036,854,775,807。
票数 11
EN

Stack Overflow用户

发布于 2015-03-03 10:39:54

这一切都归结为最重要的比特是什么用途。在有符号的数据中,它表示符号;在无符号数据中,它只是另一个数字。这意味着,无符号数据可以表示数值的两倍大,但仅代表正值(和零)--例如,在64位数据中,无符号值为0到18,446,744,073,709,551,615 -其中-签名值为-9,223,372,032,875,808到9,223,372,034,775,807至9,223,372,054,775,807。

对于8位比较容易看到:-128到127,而0到255.可能值的数目是相同的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28829514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档