【发布时间】:2026-02-15 15:55:01
【问题描述】:
我正在尝试做一些我认为非常基本的事情,但要么我只是忽略了一些显而易见的事情,要么它实际上有点棘手。我的问题是:我有一个包含 4 个十六进制值的 4 个字符的数组。例如:
array[0] = 0xD8
array[1] = 0xEC
array[2] = 0xA2
array[3] = 0x83
我想将此数组存储在一个带有组合值的整数中,在本例中为 0xD8ECA283
我尝试过进行逻辑或然后移动位,通过这种方法,我设法将 0xD8 的值存储在整数中,而不是其余的。任何提示将不胜感激。
【问题讨论】:
-
显示代码,我们会从那里帮助您。
-
为什么不直接使用数组,就好像它是一个指向整数的指针一样呢?例如。
int integer = *((int*)array). -
@Witiko 因为Endianness.
-
@Witiko 由于字节序问题,这可能不起作用。根据是大端还是小端平台,您获得的价值会有所不同
-
@Witiko:你也可能面临对齐问题。
标签: c