【发布时间】:2014-03-23 15:48:06
【问题描述】:
我最近一直在努力复习我的 C 语言,并且正在编写一个程序来手动解析 PNG 文件。
我在十六进制编辑器中查看了 PNG 文件,发现一个字节流看起来像
00 00 00 0D
十六进制格式。
这个字符串应该代表我感兴趣的长度。
我使用getc(file) 来提取 PNG 文件的字节。
我创建了一个字符数组
char example[8];
存储从getc检索到的字符。
现在,我已经填充了 example 并使用
printf("%#x, %#x, %#x, %#x", example[0]....
显示 0, 0, 0, 0xd 这正是我想要的。
但是当我使用
int x = atoi(example)
或
int x = strtol(example, NULL, 16)
在这两种情况下我都返回零(我期待 13)。我错过了一些基本的东西吗?
【问题讨论】:
标签: c arrays type-conversion