我有个问题
我这里有这个函数,它将一个跨 4 个字节的整数存储为十六进制字符
void store_int(unsigned char* arr, int index, int value) {
arr[index] = (value >> 24) & 0xFF;
arr[index+1] = (value >> 16) & 0xFF;
arr[index+2] = (value >> 8) & 0xFF;
arr[index+3] = value & 0xFF;
}
现在,我正在研究一个名为 store 的函数,它存储一个跨 32 位的整数,我想要一些确认
这个方法可以吗,
我使用这种方法在索引 0 处输入整数,它存储跨 0,1,2,3 的索引
然后调用 read_int 方法,下面从 0 到 position 读取索引,输入和输出是一样的,但我只是想确保它实际上是以 32 位存储的(不太关心字节顺序)
int read_int(const unsigned char* arr, int index) {
int value = 0;
value |= ((int)arr[index]) << 24;
value |= ((int)arr[index+1]) << 16;
value |= ((int)arr[index+2]) << 8;
value |= ((int)arr[index+3]);
return value;
}
干杯