重複の可能性:
先行ゼロ付きの整数
私はJavaが初めてです。これは私がしました :
System.out.println(01111);
を印刷し4680
ます。なぜ印刷されなかったの01111
ですか?
前もって感謝します。
文字列「01111」を出力したい場合は、引用符で囲みます。これが、Java で文字列を指定する方法です。
10 進数の 01111 は存在しないため、10 進数の 01111 を出力しようとしてもうまくいかない可能性があります。
4680 が表示された理由は、Java ソース コードでは、数値定数の前のゼロは、数値が 8 進数で指定され、数値が 10 進数で出力されることを示しているためです。8 進数の 11110 = 10 進数の 4680。( 01110
4680 を取得するためにやったに違いありません。585 を取得していた01111
はずです。)
4680 ではなく 585 と表示されます。
で始まる整数リテラル0
は 8 進数です。したがって、1111 は 585 の 8 進表現です。
整数の前に 0 を付けることは、それが8 進数リテラルであることを意味するため、数値は1*8^3+1*8^2+1*8^1+1*8^0
.
これは、出力しようとしている数値の8 進数表現です。得られるはずの出力は is "585"
and not"4680"
です。
接頭辞 0 は 8 進整数 (基数 8) を意味するためです。したがって、8 進数の 1111 は 10 進数の 585 です。