gpt4 book ai didi

c - 如何使用 C 将 char 数组更改为 int ?

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

我现在正在学习 C,我正在解析一个原始注册表文件并读取它。

我现在遇到一些问题,

000011E0    00 00 00 00 60 01 00 00 B9 01 00 00 00 00 00 00 
000011F0 20 C0 26 00 FF FF FF FF 00 00 00 00 FF FF FF FF
00001200 10 FC 00 00 FF FF FF FF 4C 00 01 00 00 00 00 00
this is hex value of REGISTRY file.

fseek(fp,0x11F0,SEEK_SET);

char tmp[4];
int now = ftell(fp);
for(int i = 0 ; i < 4 ; i++){
tmp[i] = fgetc(fp);
}

我制作了这个 tmp 数组,但我需要 0x0026c020。我怎样才能将此数组更改为该值?或者请建议我更好的算法。

谢谢。

最佳答案

如果您知道该值以与主机操作系统架构相同的字节顺序存储,您可以这样做:

int value = *(int *)tmp;

但是,您不应该像这里那样以向后顺序读取字节,这会改变字节序并导致错误的值。试试这个:

int value;
if (fread(&value, sizeof(value), 1, fp) != 1) {
/* Could not read, handle error. */
}

/* value is set, inspect it */

关于c - 如何使用 C 将 char 数组更改为 int ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11515966/

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