我想转换一个unsigned int并将其分成2个uchars。
For example:
uint16 current = 23;
uchar a[2];
我应该把它放在单词中,因为a [0]应该保持3而a [1]应该保持1 这应该与big endian和little endian系统兼容。
我试过了:
uint16 final = 23;
uchar a[2];
uint16 *current = (uint16 *)a;
*current = final;
但是,这有字节序问题
答案 0 :(得分:1)
Endianness不是一个问题:
uint16_t a = 23;
uint8_t b[2];
b[0] = a & 0xff;
b[1] = a >> 8;
b[0]
将始终为低位字节,b[1]
为高位字节。