首先是的,我知道int比字节更原生,并且字节上的所有数学和逻辑运算实际上是在int上完成的。这当然意味着如果使用字节则存在扩大和缩小的成本。但是在平衡时,这也意味着内存字节实际上保存了字节,并且可能不会大于字节值,例如256.
我猜这两种情况都有利有弊,但我会在意见之后。
答案 0 :(得分:2)
我会使用最简单的类型来模拟有问题的硬件。
如果它是8位计算机,可能是字节。对于像x86-64这样的东西我想象一个长(64位)会更有意义。在这两种情况下,选择的大小更可能匹配寄存器操作和在cpu和内存之间传输的数据“字”的大小:
所有通用寄存器(GPR)都从32位扩展到64位 位,以及所有算术和逻辑运算,存储器到寄存器 和寄存器到存储器操作等现在可以直接操作 64位整数。堆栈上的推送和弹出始终为8字节 步幅,指针宽8个字节。
答案 1 :(得分:0)
当我写一个mips处理器时,我使用BitSet类来保存各个位,以便使用子集方法轻松分割位数组。我写了一个类来将它们从int转换为bitset,所以我可以对整数进行算术运算。
这不是一种性能有效的方法,但在这种情况下并不重要。