gpt4 book ai didi

c++ - 将 UINT16 值转换为 UINT8 数组[2]

转载 作者:IT老高 更新时间:2023-10-28 22:32:17 26 4
gpt4 key购买 nike

这个问题基本上是我其他Question的后半部分

如何将 UINT16 值转换为 UINT8 * 数组而无需循环并避免字节序问题。

基本上我想做这样的事情:

UINT16 value = 0xAAFF;
UINT8 array[2] = value;

这样做的最终结果是将值存储到 UINT8 数组中,同时避免字节序转换。

UINT8 * mArray;
memcpy(&mArray[someOffset],&array,2);

当我简单地使用 UINT16 值执行 memcpy 时,它会转换为 little-endian,这会破坏输出。我试图避免使用字节序转换函数,但我想我可能只是不走运。

最佳答案

怎么样

UINT16 value = 0xAAFF;
UINT8 array[2];
array[0]=value & 0xff;
array[1]=(value >> 8);

这应该提供与字节顺序无关的相同结果。

或者,如果你想使用数组初始化器:

UINT8 array[2]={ value & 0xff, value >> 8 };

(但是,这只有在 value 是一个常量时才有可能。)

关于c++ - 将 UINT16 值转换为 UINT8 数组[2],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1289251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com