gpt4 book ai didi

c - 从字符串中的 4 个连续字节获取整数值

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

给定一个 char 数组,我必须在 int 类型的变量中保存一个数字,该数字由该 char 数组中的 4 个连续字节表示。我知道第一个字节在该数组中的位置。我该怎么办?

编辑:解决方案#1:

 int number , offset;
char *data;
memcpy(&number, &data[offset], 4);

解决方案#2:

 int number , offset;
char *data;
number = *(int*)(data + offset);
// offset: where the first of the four bytes is situated

最佳答案

未测试

int convert_to_int(chat *buff, int ascii, int str, int endianess)
{
union
{
int i;
unsigned char uc[sizeof(int)];
}ui = {.i = 0};
int mult = 1;

if(str)
{
for(int digit = 0; digit < sizeof(ui.i); digit++)
{
mult *= 10;
}
}

for(size_t index = 0; index < sizeof(int); index++)
{
size_t pos = endianess ? index : sizeof(ui.i) - 1 - index;

if(str)
{
ui.i += mul * (*buff++ - '0');
mul /= 10;
}
else
{
ui[pos] = ascii ? *buff++ - '0' : *buff++;
}
}
return ui.i;
}

关于c - 从字符串中的 4 个连续字节获取整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56295292/

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