0010000 is an octal literal. This has nothing to do with BigInteger
- it's just whole Java literals ( JLS 3.10.1 ):
System.out.println(10000);
From JLS:
The decimal digit is either a single ASCII digit 0 representing an integer zero, or consisting of an ASCII digit from 1 to 9, followed by one or more ASCII digits from 0 to 9, alternating with underscores representing a positive integer.
...
The octal digit consists of the ASCII digit 0, followed by one or more ASCII digits from 0 to 7, alternating with underscores, and can represent a positive, zero, or negative integer.
source share