c - 如何在 c 中将 4 的 uint8_t 数组转换为 uint32_t

标签 c casting

我正在尝试将一个 uint8_t 数组转换为一个 uint32_t 数组,但它似乎不起作用。
谁可以帮我这个事。我需要将 uint8_t 值转换为 uint32_t。
我可以通过移动来做到这一点,但我认为有一种简单的方法。

uint32_t *v4full;
v4full=( uint32_t *)v4;
while (*v4full) {
    if (*v4full & 1)
        printf("1");
    else
        printf("0");

    *v4full >>= 1;
}
printf("\n");

最佳答案

鉴于需要将 uint8_t 值获取到 uint32_t,以及 in4_pton() 的规范...

尝试对字节顺序进行可能的更正:

uint32_t i32 = v4[0] | (v4[1] << 8) | (v4[2] << 16) | (v4[3] << 24);

关于c - 如何在 c 中将 4 的 uint8_t 数组转换为 uint32_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296162/

相关文章:

c - 错误 : undeclared here (not in a function)

c - strftime 本周第一天

c - 强制转换指针的算术

python - 在 PySpark 中将多列转换为字符串的有效方法

C++:如何获取浮点指针的地址并将其转换为 void**

c# - 重新解释将数组从字符串转换为整数

c - 从当前线程中找出事件线程的状态。 (稳健互斥体的实现)

C程序执行: Does it run in a process or a thread?

c++ - 如何在 C++ 中安全地比较 32 位整数与 64 位整数以及如何在内部比较有符号整数?

Java 强制转换(强制转换运算符表达式)