首先是的,我知道整数比字节更原生,并且字节上的所有数学和逻辑运算实际上都是在整数上完成的。这当然意味着如果使用字节,就会有扩大和缩小的成本。然而,在平衡方面,这也意味着内存字节确实保存字节,而不是可能大于字节值的值,例如 256。
我猜在这两种情况下都有优点和缺点,但我会寻求意见。
我会使用最容易模拟相关硬件的任何类型。
如果它是一台 8 位计算机,那可能是字节。对于像 x86-64 这样的东西,我想长(64 位)会更有意义。在这两种情况下,选择的大小更可能匹配寄存器操作和 cpu 和内存之间传输的数据“字”的大小:
所有通用寄存器(GPR)都从 32 位扩展到 64 位,所有算术和逻辑运算、内存到寄存器和寄存器到内存的操作等现在都可以直接对 64 位整数进行操作。堆栈上的推送和弹出总是以 8 字节的步幅进行,指针的宽度为 8 字节。
当我编写 mips 处理器时,我使用类 BitSet 来保存各个位,以便使用子集方法轻松拆分位数组。我写了一个类来将它们从 int 到 bitset 来回转换,这样我就可以对整数进行算术运算。
这不是一种性能有效的方法,但在这种情况下,这并不重要。