无符号和有符号short int [duplicate]的位宽

问题描述 投票:-1回答:2

此问题已经在这里有了答案:

为什么将无符号和有符号的short int数据类型的“典型位宽”归类为“范围”?这是否意味着它们可能是任意数量的字节?如果是这样,为什么与其他数据类型一样可以预测“典型范围”(0到65,535和-32768到32767)?

c++ c types
2个回答
0
投票

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

我意识到,很容易专注于实现细节,例如“有多少位”或“占用多少字节”,但是我们不在1970年代了。我们不是在打孔卡上创建机器说明。 C ++和C是抽象。用semanticsbehaviours来思考,您会发现编程工作容易得多。

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


0
投票

在数学上,“范围”是(取决于上下文)与“间隔”的同义词。间隔是位于两个数字之间的一组数字。所有整数类型的所有值的集合是间隔,因此可以称为范围。

C11标准指定的带符号short的最小要求范围必须为[−32,767,+32,767],而带符号short的最小范围必须至少为[0,65,535]。

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

这不遵循“范围”,但是字节数的确由实现定义。至少需要16位才能表示16位是最小范围,并且至少需要一个或两个字节,具体取决于字节的大小(至少8位)。

© www.soinside.com 2019 - 2024. All rights reserved.