gpt4 book ai didi

c++ - 以相反的顺序存储整数值

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:12 25 4
gpt4 key购买 nike

打印十六进制值(存储在a中的值)正在倒序打印

int main()
{
int i;
uint8_t b[4];
int a = 0xaabbccdd;
uint8_t *ptr;
ptr = &b;
memcpy(ptr,&a,4 * sizeof(uint8_t));

for(i = 0;i < 4;i++)
{
printf("%x ",*ptr++);
}
return(0);

}

输出

dd  cc  bb  aa

如何按照输入的相同顺序存储它(aabbccdd)

最佳答案

这与ENDIANNESS有关,它是计算机在内存中存储数值的方式。

总而言之,大多数现代处理器(x86、x86-64、ARM)都是小端(ARM 现在是双端,你可以在硬件中配置它)。

这意味着最低有效字节具有最低地址(小端在前)。

与其试图反对这一点,我建议您在确实需要时解决它。

如果您真的必须做,您可以做的一件事是使用网络字节顺序,它被定义为大端。 htons()、htonl()、ntohs()、ntohl() 等函数可能会有所帮助。

关于c++ - 以相反的顺序存储整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21592373/

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