无符号和有符号短整型的位宽
Bit width of unsigned and signed short int
为什么无符号和有符号短int数据类型的"典型位宽"被归类为"range"?这是否意味着它们可能是任意数量的字节?如果是这样,为什么"典型范围"与其他数据类型一样是可预测的(0到65535和-32768到32767(?
根据整数的数值范围来描述其可能值既明智又直观。
我意识到,关注实现细节很诱人,比如"有多少位"或"它占用了多少字节",但我们已经不是20世纪70年代了。我们不是在穿孔卡片上创建机器指令。C++和C是抽象。从语义和行为的角度思考,您会发现编程生活要轻松得多。
您正在查看的信息的作者遵循该规则。
为什么无符号和有符号短int数据类型的"典型位宽"被归类为"range"?
在数学中,"range"(取决于上下文(与"interval"同义。区间是位于两个数字(最小值和最大值(之间的一组数字。所有整数类型的所有值的集合都是区间,因此可以称为范围。
C11标准指定的带符号短字符必须具有的最小要求范围为[-32767,+32767],无符号短字符至少必须具有[065535]。
这是否意味着它们可能是任意数量的字节?
这不是从"range"开始的,但字节数确实是由实现定义的。至少需要16位来表示最小范围,并且这需要至少一个或两个字节,这取决于字节的大小(至少是8位(。
"可能"的字节数取决于可能使用的系统。
如果是,为什么
因为这允许该语言在各种CPU架构上使用,这些架构具有不同大小的字节、不同的带符号整数表示以及支持不同宽度寄存器的不同指令集。
相关文章:
- 是什么导致了这种使用三进制而不是短整型的有符号int到无符号int转换
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 提升不良词法强制转换:将字符串转换为无符号长整型时,无法将源类型值解释为目标
- 将最小值整数转换为无符号长整型
- 如何将小端格式的QByteArray转换为无符号长整型
- 直接初始化无符号短整型的标准行为
- 无符号长整型和无符号 int 之间有什么区别,这 2 种类型应该如何在 c# 中封送?
- 无符号和有符号短整型的位宽
- 类型为"短整型 (&)"的引用初始化无效
- 如何使用 avx 指令将浮点数向量转换为短整型?
- 以 C++ 为单位设置(短整型)的上下字节
- 如何在C++中设置短整型的上限和下限字节
- 将 QString 转换为无符号短整型
- 在C++中,我如何使用无符号短整型和短整型来减去hugeintger
- 使用 ifstream 从C++文件中读取二进制无符号短整型
- 无法将参数 1 从"cli::array<Type> ^"转换为"无符号短整型"
- 类型转换无效指针指向无符号短整型
- 将浮点转换为无符号短整型时出现舍入问题
- g++ abs()在短整型上似乎将其转换为双精度类型
- 0x378端口地址短整型