首页 > 解决方案 > 小端和大端系统的十六进制表示

问题描述

考虑以下代码:

unsigned char byte = 0x01;

C/C++十六进制中将被视为一个int,因此将扩展为多于一个字节。因为多于一个字节,如果系统使用小端或大端都有影响。我的问题是这将扩展什么?

如果系统int包含 4 个字节,它将被扩展为以下哪个:

0x00000001 或 0x01000000

字节序是否会扩展到它们中的哪一个?

标签: c++chexendianness

解决方案


字节顺序无关紧要。字节序仅与值如何存储在内存中有关。但是,无论以何种方式存储,存储在内存中的值都将是 0x01。

以值 0x01020304 为例。它可以作为01 02 03 04或存储在内存中04 03 02 01。但在这两种情况下,它仍然是值 0x01020304(或 16 909 060)。


推荐阅读