c++ - 为什么所有数据类型都是 2 的幂?

标签 c++ programming-languages

为什么所有数据类型的大小都是 2 的幂?

举两个例子:

short int 16
char 8

为什么他们不喜欢跟随?

short int 12

最佳答案

那是一个实现细节,并非总是如此。一些奇特的体系结构具有非二次幂的数据类型。例如,36-bit words在一个阶段很常见。

如今,2 的幂几乎普遍存在的原因是它通常可以简化内部硬件实现。作为一个假设的例子(我不做硬件,所以我不得不承认这主要是猜测),指示其参数之一的操作码部分可能存储为二次幂索引参数中的字节数,因此两位足以表示参数是 8、16、32 或 64 位中的哪一个,将其转换为适当的锁存信号所需的电路将非常简单。

关于c++ - 为什么所有数据类型都是 2 的幂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191833/

相关文章:

c++ - 将int转换为float?

c++ - 在构造函数中使用对象

artificial-intelligence - IDA* 有 15 个拼图,需要帮助

c - 为什么 C 允许在 block 周围省略大括号?

c++ - 如何获取程序执行打开和关闭的文件列表?

c++ - 尝试使用静态方法/成员

programming-languages - 腮腺炎编程检查超时

c# - C# 是单分派(dispatch)语言还是多分派(dispatch)语言?

programming-languages - 仅键入接口(interface)

c++ - 使用 default 关键字指定的构造函数是否微不足道?