无符号和有符号短整型的位宽

Bit width of unsigned and signed short int

本文关键字:短整型 符号 无符号      更新时间:2023-10-16

为什么无符号和有符号短int数据类型的"典型位宽"被归类为"range"?这是否意味着它们可能是任意数量的字节?如果是这样,为什么"典型范围"与其他数据类型一样是可预测的(0到65535和-32768到32767(?

根据整数的数值范围来描述其可能值既明智又直观。

我意识到,关注实现细节很诱人,比如"有多少位"或"它占用了多少字节",但我们已经不是20世纪70年代了。我们不是在穿孔卡片上创建机器指令。C++和C是抽象。从语义行为的角度思考,您会发现编程生活要轻松得多。

您正在查看的信息的作者遵循该规则。

为什么无符号和有符号短int数据类型的"典型位宽"被归类为"range"?

在数学中,"range"(取决于上下文(与"interval"同义。区间是位于两个数字(最小值和最大值(之间的一组数字。所有整数类型的所有值的集合都是区间,因此可以称为范围。

C11标准指定的带符号短字符必须具有的最小要求范围为[-32767,+32767],无符号短字符至少必须具有[065535]。

这是否意味着它们可能是任意数量的字节?

这不是从"range"开始的,但字节数确实是由实现定义的。至少需要16位来表示最小范围,并且这需要至少一个或两个字节,这取决于字节的大小(至少是8位(。

"可能"的字节数取决于可能使用的系统。

如果是,为什么

因为这允许该语言在各种CPU架构上使用,这些架构具有不同大小的字节、不同的带符号整数表示以及支持不同宽度寄存器的不同指令集。