17

私はいつも0、たとえば—の代わりに、先行ゼロ()が8進数を表すために使用されるのか疑問に思っていまし0oた。の使用は同じように役立ちますが、主要なes(JavaScriptなど)0oほど多くの問題を引き起こすことはありません。このデザインの選択の背後にある理由は何ですか?0parseInt('08');

4

3 に答える 3

21

すべての現代言語は、この規則をCからインポートし、Cからインポートし、Bからインポートし、BCPLからインポートしました。

#12348進数および16進数に使用されるBCPLを除く#x1234。#はBの単項演算子(整数から浮動小数点への変換)であったため、Bはこの規則から逸脱しました。そのため、#1234は使用できず、ベースインジケーターとしての#は0に置き換えられました。

Bの設計者は、構文を非常にコンパクトにしようとしました。これが、2文字のプレフィックスを使用しなかった理由だと思います。

于 2012-07-14T11:24:10.183 に答える
1

「0b」は、8進数ではなく2進数によく使用されます。先行ゼロは、「O -ctal」だと思います。

8進数を解析することがわかっている場合は、を使用parseInt('08', 10);して、数値を10進数として処理します。

于 2012-07-14T11:17:10.713 に答える