我目前正在用 c 语言为 atmel (Atmega328) 的 8 位微 Controller 编程。在程序中,我有一个 8 位数组存储了数千个 2 位整数,因此它位于程序内存空间中。目前,我在每个字节中放了四个 2 位整数,但现在仔细想想,这似乎很愚蠢......
使用具有 16 位值的数组并在每个位置存储八个 2 位变量不是更有效吗?
微 Controller (atmega328p) 是一个 8 位 IC,每个机器指令有 16 位。
最佳答案
如何提高效率?
空间效率
2 位整数占用 2 位。您对此无能为力。
时间效率
无论您如何打包它们,您仍然需要执行相同数量的按位运算以从较大的值中提取您的 2 位数字。
关于c - 数组打包效率 : 8bit (byte) vs 16bit elements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14714436/