I have been learning a bit about binary and memory and I looked how int is being written, and from what I understood it basically writes 4 bytes, where the max number for a signed is where your 4 bytes are `127`:

```
    byte a = Byte.MAX_VALUE;
    byte b = Byte.MAX_VALUE;
    byte c = Byte.MAX_VALUE;
    byte d = Byte.MAX_VALUE;

    System.out.println((a << 24) + (b << 16) + (c << 8) + (d << 0));

```

And then I shift left by a byte (8 bits) every time).

But the maximum number i get is `2139062143` instead of `2147483647`, why is that?