首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当“can”在64位上表示时,它如何才能保持其范围不受限制。

当“can”在64位上表示时,它如何才能保持其范围不受限制。
EN

Stack Overflow用户
提问于 2017-10-04 07:27:10
回答 1查看 573关注 0票数 1

可以找到char数据类型以8字节表示的体系结构,因此64位,与long long相同,同时标准要求绑定CHAR_MIN和CHAR_MAX --参见Standard ISO 9899中的5.2.4.2.1 Sizes of integer types <limits.h>

我不明白为什么这些体系结构选择表示char所以,以及它如何在这么大的空间上表示char值。那么在这种情况下char值是如何表示的呢?

一直都是sizeof(char)=1。我的问题是,sizeof(long long)sizeof(int)在这种体系结构中的价值是什么?

EN

回答 1

Stack Overflow用户

发布于 2017-10-04 07:47:22

可以找到char数据类型以8个字节表示的体系结构。

不是的。这是因为char被定义为一个字节*)。但是一个字节不一定有8位。这就是为什么八位这个词有时被用来指一个8位的单位。有些体系结构每字节使用8位以上,但我怀疑有64位字节的架构,尽管理论上这是可能的。

另一件需要考虑的事情是,char (与许多其他整数类型相反)不允许有填充位,所以如果您找到了一个64位char的体系结构,这意味着CHAR_MINCHAR_MAX将是“非常大的”;)

*)事实上,字节被定义为用来表示编码字符的内存单位,通常也是系统最小的可寻址单位。8位是常见的,维基百科文章提到的字节大小最多可达48位。这可能不是最好的源,但仍然不太可能找到64位字节。

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

https://stackoverflow.com/questions/46559283

复制
相关文章

相似问题

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