In java I was attempting to make a binary counter, that later on I could use to count in any base-n system. My results however had a mysterious outcome. At one point the values jumped from 1111111111 to -1111111111. It seemed unusual, but the fact that I don't know how different number limits work in java probably doesn't help me in this situation. Meanwhile I looked at my code and so no way that the value could become negative. My code for the binary counter is as follows: `
package bin;
public class Counter {
    public static Integer currentNumber = 0;
    public static Integer upTo = 1000;
    public static Integer currentCount = 0;
    public static void main(String[] args) {
        while(upTo>=currentCount) {
            if(currentNumber.toString().endsWith("0")) {
                currentNumber++;
            }else if(currentNumber.toString().endsWith("1")){
                currentNumber+=10;
            }
            if(currentNumber.toString().contains("2")|currentNumber.toString().contains("3")|currentNumber.toString().contains("4")|currentNumber.toString().contains("5")|currentNumber.toString().contains("6")|currentNumber.toString().contains("7")|currentNumber.toString().contains("8")|currentNumber.toString().contains("9")) {
            }else {
                currentCount++;
                System.out.print(currentNumber + "\n");
            }
        }
        System.out.print("done");
    }
}
`
The results of the program can be found at https://pastebin.com/UUMRhkhv I would appreciate any answer that explains what may have happened so I may create a more efficient and accurate binary counter.
