c++ - 小端和大端系统的十六进制表示
问题描述
考虑以下代码:
unsigned char byte = 0x01;
在C/C++
十六进制中将被视为一个int
,因此将扩展为多于一个字节。因为多于一个字节,如果系统使用小端或大端都有影响。我的问题是这将扩展什么?
如果系统int
包含 4 个字节,它将被扩展为以下哪个:
0x00000001 或 0x01000000
字节序是否会扩展到它们中的哪一个?
解决方案
字节顺序无关紧要。字节序仅与值如何存储在内存中有关。但是,无论以何种方式存储,存储在内存中的值都将是 0x01。
以值 0x01020304 为例。它可以作为01 02 03 04
或存储在内存中04 03 02 01
。但在这两种情况下,它仍然是值 0x01020304(或 16 909 060)。
推荐阅读
- java - java中的setSoTimeout方法改变了哪个定时器?
- java - onStart() 中的无限循环
- jsf - f:param 渲染时返回 null
- jquery - 如何使用 jquery 在 div 中编写原始 html?
- java - Spring MVC中如何通过Controller将数据从MongoDB转换到View
- php - 更新帖子在与更新用户一起使用时不起作用
- node.js - 如何检查是否发送了 AXIOS POST 请求?
- ios - 为 Swift UI 视图创建自定义修饰符
- javascript - 使用 Plotly.js 和 Node.js 获取和绘制数据
- apache-kafka - Kstream 的成本与 KTable 相对于状态存储的成本