以相反顺序存储整数值
storing integer value in reverse order
在打印 hexadecimal value ( 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是Bi-Endian,您可以在硬件中进行配置)。
这意味着最低的字节具有最低的地址(第一个小端)。
而不是试图反对这一点,我建议您如果真的需要解决它。
如果您确实必须做的话,您可以做的一件事是使用网络字节订单,该订单定义为大型。诸如htons(), htonl(), ntohs(), ntohl()
之类的功能可能会有所帮助。
相关文章:
- 将字符指针按顺序存储在 map 中 std::map<char*, int> mymap。将其存储为字符或字符串不是一个选项
- C++ 如何生成 10,000 个 UNIQUE 随机整数以存储在 BST 中?
- 整数必须存储在连续的内存地址中吗?
- 如何存储空整数与存储零
- 在整数中存储大于 INT_MAX 的数字
- 以相反顺序存储整数值
- C++以相反的顺序存储字符串
- 如何在整数中存储10^6位数字
- 从文件中读取整数并存储在数组中
- STL 按排序顺序存储数字
- 数组是否以相反的顺序存储在 C/C++中
- 为什么 libstdc++ 以相反的顺序存储 std::tuple 元素
- 按顺序存储不同类型的对象
- 为什么 file.write() 不按照我给出的顺序存储字节?C++
- 以整数形式存储错误值
- 如何在c++中按列主顺序存储二维数组中的值
- 整数如何存储在内存中?
- 如何在Vector中按字母顺序存储字符串
- 如何处理无法在整数中存储时间
- 用于按排序顺序存储元素并允许快速索引的数据结构