从char*数组中读取"整数"大小的字节,可以通过以下方法实现:
int getIntFromCharArray(char* arr, bool isLittleEndian) {
int result = 0;
if (isLittleEndian) {
for (int i = 0; i< sizeof(int); i++) {
result |= (unsigned char)arr[i] << (i * 8);
}
} else {
for (int i = 0; i< sizeof(int); i++) {
result |= (unsigned char)arr[i] << ((sizeof(int) - i - 1) * 8);
}
}
return result;
}
arr
是指向字节数组的指针,isLittleEndian
表示字节数组是否以小端字节序存储。需要注意的是,以上代码仅适用于4字节整数。对于8字节整数(例如long long),需要进行相应的修改。
领取专属 10元无门槛券
手把手带您无忧上云