将小端序列中的4个字节转换为无符号整数

use*_*123 5 c++ type-conversion endianness

我有一串256*4字节的数据.这些256*4字节需要转换为256个无符号整数.它们来的顺序是小端,即字符串中的前四个字节是第一个整数的小端表示,接下来的4个字节是下一个整数的小端表示,依此类推.

解析这些数据并将这些字节合并为无符号整数的最佳方法是什么?我知道我必须使用bitshift运算符,但我不知道以什么方式.

Sak*_*ham 6

希望这对你有所帮助

unsigned int arr[256];
char ch[256*4] = "your string";
for(int i = 0,k=0;i<256*4;i+=4,k++)
{
arr[k] = ch[i]|ch[i+1]<<8|ch[i+2]<<16|ch[i+3]<<24;
}
Run Code Online (Sandbox Code Playgroud)

  • @thomas 这种方法是*endian-agnostic*。主机系统的字节序是什么并不重要。 (2认同)