在 C 中将 uint8_t 数组连接到 uint32_t 数组
concatenating a uint8_t array into uint32_t array in C
以前可能有人问过这个问题。但我还是会问的。如果有人可以指导我做一些相关的事情,那也很好。
所以,如果我有:
uint8_t src[] = {34, 56, 31, 89, 11, 32, 67, 89};
是否可以通过连接得到这样的东西:
uint32_t dst[] = {34563189, 11326789};
如果是,怎么样?我看到一个关于将 uint8_t 数组转换为 uint32_t 的问题,但我需要将 4 字节块并排放入 uint32_t 数组中。谢谢!
在我看来,
- 使用
snprintf()
将单个 uint8_t
打印到 char
数组。
- 使用
strtol()
将数组转换为整数。
如果您真的使用十进制值:
uint32_t dst[] = {1000000 * src[0] +10000 * src[1] + 100 * src[2] + src[3],
1000000 * src[4] +10000 * src[5] + 100 * src[6] + src[7]};
以前可能有人问过这个问题。但我还是会问的。如果有人可以指导我做一些相关的事情,那也很好。
所以,如果我有:
uint8_t src[] = {34, 56, 31, 89, 11, 32, 67, 89};
是否可以通过连接得到这样的东西:
uint32_t dst[] = {34563189, 11326789};
如果是,怎么样?我看到一个关于将 uint8_t 数组转换为 uint32_t 的问题,但我需要将 4 字节块并排放入 uint32_t 数组中。谢谢!
在我看来,
- 使用
snprintf()
将单个uint8_t
打印到char
数组。 - 使用
strtol()
将数组转换为整数。
如果您真的使用十进制值:
uint32_t dst[] = {1000000 * src[0] +10000 * src[1] + 100 * src[2] + src[3],
1000000 * src[4] +10000 * src[5] + 100 * src[6] + src[7]};