此问题已经在这里有了答案:
为什么将无符号和有符号的short int数据类型的“典型位宽”归类为“范围”?这是否意味着它们可能是任意数量的字节?如果是这样,为什么与其他数据类型一样可以预测“典型范围”(0到65,535和-32768到32767)?
根据整数的数值范围描述整数的可能值既明智又直观。
我意识到,很容易专注于实现细节,例如“有多少位”或“占用多少字节”,但是我们不在1970年代了。我们不是在打孔卡上创建机器说明。 C ++和C是抽象。用semantics和behaviours来思考,您会发现编程工作容易得多。
您正在查看的信息的作者正在遵循该规则。
在数学上,“范围”是(取决于上下文)与“间隔”的同义词。间隔是位于两个数字之间的一组数字。所有整数类型的所有值的集合是间隔,因此可以称为范围。
C11标准指定的带符号short的最小要求范围必须为[−32,767,+32,767],而带符号short的最小范围必须至少为[0,65,535]。
这是否意味着它们可能是任意数量的字节?
这不遵循“范围”,但是字节数的确由实现定义。至少需要16位才能表示16位是最小范围,并且至少需要一个或两个字节,具体取决于字节的大小(至少8位)。