21.8 怎樣轉換整數到二進制或十六進制?

確定你真的知道你在問什麼。整數是以二進制存儲的, 雖然 對於大多數情況下, 把它們當成是八進制、十進制或十六進制 並沒有錯, 只要方便就好。數字表達的進制只有在讀入或寫出 到外部世界時才起作用。

在源程序中, 非十進制的數字由在前的 0 或 0x 表示 (分別位 八進制和十六進制)。在進行 I/O 操作時, 數字格式的進制在  printf 和 scanf 這類函數里, 由格式符決定  (%d, %o 和 %x 等); 在  strtol() 和 strtoul() 中, 則由他們的第三 個參數決定。 如果你想要輸出任意進制的數字字符串, 你需要 自己提供相關的函數 (基本上是 strtol 的反函數)。 在進行二進制 I/O 時, 進制就不相干了。

更多的有關二進制的 I/O, 參見問題 2.9。還有問題  8.4 和 13.1

參考資料: [ISO, Secs. 7.10.1.5,7.10.1.6]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)