はなぜintに先頭の0を追加すると、C++が奇妙に動作するのはなぜですか?
cout << 0110 << endl;
が72をプリントアウトされましたか?
intに先行する0を追加すると違いはありますが、 '0110'は '110'と同じではないはずですか? 0110
がoctal-literalあること
はなぜintに先頭の0を追加すると、C++が奇妙に動作するのはなぜですか?
cout << 0110 << endl;
が72をプリントアウトされましたか?
intに先行する0を追加すると違いはありますが、 '0110'は '110'と同じではないはずですか? 0110
がoctal-literalあること
注
進リテラルは、数字のゼロ(0)は、ゼロ又はそれ以上の8進数(0、1、2、3、4、5、6、7、続いて)
だから、72
を印刷するときは、110
と同じではありません。
@nilcitこれが原因で問題が発生することはありますか?ソースコード内の数字にのみ影響し、入力には影響しません。 –
私が何かについて考えているのは、ゼロパッド付きintsを使って作業するのがはるかに楽しいということです。 – nilcit
残念なことに、いくつかの人はちょっとあなたに似ていますが、ベース8で数えることは非常に気に入っていました。 :) –
コンパイラの権利。先行ゼロものと
8をベースとして、電話番号は、(72)と等しいので0110
手段(110)が、扱われます。
08
を書き込もうとすると、コンパイラは有効な8進数ではないと不平を言うでしょう。
先頭の0は、8進表記の数値を示します。はい、彼らは面白い骨、最後の世紀プログラミング言語を発明した人たち... – BitTickler
そして、陽気であると思うなら、あなたは '0'だけでなく' 0x 'である。どのような暴動! –