does it have to start with a non-zero integer?
YES, it should be or studio gives error as : the leading zero turns this number into octal so
removing leading zero is better way
Ex: 023 to 23 in your case
For example, it could be a build number. Or you could translate a version number in "x.y" format to an integer by encoding the "x" and "y" separately in the lower and upper 16 bits. Or you could simply increase the number by one each time a new version is released.
versionCode — An integer used as an internal version number. This number is used only to determine whether one version is more recent than another, with higher numbers indicating more recent versions.
The value is an integer so that other apps can programmatically evaluate it, for example to check an upgrade or downgrade relationship.