你能解释一下如何将最后3个字节的数据从无符号整数转换成字符数组吗?
例:
unsigned int unint = some value;
unsigned char array[3];
Run Code Online (Sandbox Code Playgroud)
如果你必须将它转换为数组更难,但如果你只想访问单个字节,那么你可以做
char* bytes = (char*)&unint;
Run Code Online (Sandbox Code Playgroud)
如果你真的想制作一个数组(并因此制作最后3个字节的副本,而不是留下它们),你可以这样做
unsigned char bytes[3]; // or char, but unsigned char is better
bytes[0] = unint >> 16 & 0xFF;
bytes[1] = unint >> 8 & 0xFF;
bytes[2] = unint & 0xFF;
Run Code Online (Sandbox Code Playgroud)
您可以使用按位右移运算符:
array[0] = unint;
array[1] = unint >> 8;
array[2] = unint >> 16;
Run Code Online (Sandbox Code Playgroud)
最不重要的字节uint存储在数组的第一个元素中.