mur*_*dev 6 java numeric biginteger
我正在处理一个问题并遇到了这个问题.会发生什么:
当我们使用它时:
BigInteger.valueOf(10000)它给出了价值10000
但
当我们使用BigInteger.valueOf(0010000)它时,它给出了价值4096
这两者有什么区别?
Jon*_*eet 12
0010000是八进制文字.这与之无关BigInteger- 它只是Java整数文字(JLS 3.10.1):
System.out.println(10000); // 10000
System.out.println(0010000); // 4096
Run Code Online (Sandbox Code Playgroud)
来自JLS:
十进制数字是单个ASCII数字0,表示整数零,或者由1到9的ASCII数字组成,可选地后跟一个或多个从0到9的ASCII数字,其中散布着下划线,表示正整数.
...
八进制数字由ASCII数字0后跟一个或多个散布有下划线的ASCII数字0到7组成,并且可以表示正整数,零整数或负整数.