1

重複の可能性:
先行ゼロ付きの整数

私はJavaが初めてです。これは私がしました :

System.out.println(01111);

を印刷し4680ます。なぜ印刷されなかったの01111ですか?

前もって感謝します。

4

5 に答える 5

8

文字列「01111」を出力したい場合は、引用符で囲みます。これが、Java で文字列を指定する方法です。

10 進数の 01111 は存在しないため、10 進数の 01111 を出力しようとしてもうまくいかない可能性があります。

4680 が表示された理由は、Java ソース コードでは、数値定数の前のゼロは、数値が 8 進数で指定され、数値が 10 進数で出力されることを示しているためです。8 進数の 11110 = 10 進数の 4680。( 011104680 を取得するためにやったに違いありません。585 を取得していた01111はずです。)

于 2012-08-24T13:02:30.950 に答える
2

4680 ではなく 585 と表示されます。

で始まる整数リテラル0は 8 進数です。したがって、1111 は 585 の 8 進表現です。

于 2012-08-24T13:03:04.487 に答える
1

整数の前に 0 を付けることは、それが8 進数リテラルであることを意味するため、数値は1*8^3+1*8^2+1*8^1+1*8^0.

于 2012-08-24T13:04:35.017 に答える
0

これは、出力しようとしている数値の8 進数表現です。得られるはずの出力は is "585"and not"4680"です。

于 2012-08-24T13:05:38.687 に答える
0

接頭辞 0 は 8 進整数 (基数 8) を意味するためです。したがって、8 進数の 1111 は 10 進数の 585 です。

于 2012-08-24T13:02:47.067 に答える