2009年08月21日
8 進数の 8 ? 9 ?
いつもいつもマイナーなネタですいません。
プログラミング言語 C 第2版の、奇妙な記述が気になりました。
あまりにもさらっと書かれていますが、意味不明です。当たり前では ?
実は当たり前ではなくて、UNIX のアセンブラでは、8 と 9 は、8 進数の 10 と 11 として扱われていたんですね… いやはや。
「UNIX Assembler Reference Manual, Dennis M. Ritchie」
http://www.tom-yam.or.jp/2238/ref/as.pdf
UNIX v6 以前のアセンブラの奇妙な習慣が、K&R の第1版まで脈々と続いていたわけです。UNIX と C の歴史は、こういうのがけっこう多いです。
プログラミング言語 C 第2版の、奇妙な記述が気になりました。
「付録 C 変更点の要約」より引用。
・誰もが好きなつまらぬ変更:8 と 9 は 8 進数ではない。(p.328)
あまりにもさらっと書かれていますが、意味不明です。当たり前では ?
実は当たり前ではなくて、UNIX のアセンブラでは、8 と 9 は、8 進数の 10 と 11 として扱われていたんですね… いやはや。
「UNIX Assembler Reference Manual, Dennis M. Ritchie」
http://www.tom-yam.or.jp/2238/ref/as.pdf
An octal constant consists of a sequence of digits; ‘‘8’’ and ‘‘9’’ are taken to have octal value 10 and 11.
UNIX v6 以前のアセンブラの奇妙な習慣が、K&R の第1版まで脈々と続いていたわけです。UNIX と C の歴史は、こういうのがけっこう多いです。