1

Groovyで入力が01234返されるのはなぜですか? 668どのような変換が行われていますか?

printf("%d", 01234)  //668
printf("%d", 0668)   //expecting ')', found '8' at line: 2, column: 17

ありがとう。

4

2 に答える 2

2

01234 は 8 進数で、10 進数の 668 に相当します。

于 2013-07-21T10:25:54.213 に答える
2

先頭にゼロがある整数リテラルは、コンパイラによって 8 進数 (基数 8) として扱われるため、0 から 7 までの数字のみを含めることができます。2 行目で構文エラーが発生するのはそのためです。

8 進数の 01234 は 10 進数の 668 です。

同様に0x、16 進数にも使用できます。たとえば、0x12344660 を表します。

于 2013-07-21T10:25:37.047 に答える