考虑以下旨在转换为单个无符号整数的字节数组:
unsigned char arr[3] = {0x23, 0x45, 0x67};
每个字节代表整数中的等效字节,现在您会特别推荐以下哪种方法来提高性能:
unsigned int val1 = arr[2] << 16 | arr[1] << 8 | arr[0];
//or
unsigned int val2=arr[0];
*((char *)&val2+1)=arr[1];
*((char *)&val2+2)=arr[2];
最佳答案
我更喜欢第一种方法,因为它是可移植的。第二个不是由于 endianness问题。
关于c++ - 您建议使用这两种将此数组转换为整数的方法中的哪一种?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4112619/