我一直在努力刷新我的C最近,並正在編寫一個程序來手動解析通過PNG文件。Char陣列的整數轉換
我看到的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)。我錯過了一些基本的東西?
+1爲了讀取數據'be64toh(* n)'的最佳方式。注意:[PNG長度字段是32位。](http://www.w3.org/TR/2003/REC-PNG-20031110/#5Chunk-layout) – chux
@chux修正了 – nemo