我的代码中有以下变量
uint8_t array[8];
uint64_t epoch;
我需要将epoch变量复制到数组中(epoch的msb应该进入数组[0])。
我通过分别复制每个字节来实现这个逻辑
array[0] = epoch>>56;
array[1] = epoch>>48;
.
.
array[7] = epoch;
另一个选择是什么??
最佳答案
类似这样的事情应该是独立的:
const size_t SIZE64 = sizeof(uint64_t);
for(size_t i=0; i<SIZE64; i++)
{
uint8_t bits = 8 * (SIZE64-i-1); // 8 bits * (8 bytes - byte index)
array[i] = epoch >> bits;
}
关于c - 将int转换为数组的最佳方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27919365/