gpt4 book ai didi

c - 如何访问字符串中特定范围的位

转载 作者:行者123 更新时间:2023-11-30 15:28:47 25 4
gpt4 key购买 nike

例如,假设我有:

uint8_t version = 1;
uint16_t type = 1;
uint32_t program = 0;

我将版本、类型和程序转换为字符串,并假设我将它们全部存储在:

char *string;

如何访问字符串的前 8 位来获取版本变量,然后将其转换回整数?然后接下来的16位为类型,并将其转换为int,然后访问程序的接下来的32位(4字节)并将其转换为int。

谢谢

最佳答案

你可以这样做:

struct {
uint8_t version;
uint16_t type;
uint32_t program;
} header;
memcpy(&header, data, sizeof(header));

这假设 data 是通过将数据从与 header 相同的 struct 复制到字符数组中来生成的。如果您需要与其他类型的硬件进行互操作,请使用 htonl/ntohl 中的功能组进行转换。发送方调用 htonl 转换为网络顺序,接收方调用 ntohl 转换为其硬件特定顺序。

关于c - 如何访问字符串中特定范围的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26456670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com