int bits, represent -(2^31)?

As I understand it, an int is 4 bytes which is 32 bits. 1 bit is used for +/-, the other 31 represent 2^0...2^30. I can understand why ints can store the range -(2^31)+1 to 2^31-1 but how is -(2^31) represented?
[218 byte] By [tugnuta] at [2007-11-27 9:39:54]
# 1
Read about the two's-complement system : http://en.wikipedia.org/wiki/Signed_number_representations
TimTheEnchantora at 2007-7-12 23:16:11 > top of Java-index,Java Essentials,Java Programming...
# 2

public class a

{

public static void main( String a[] )

{

dump( Integer.MAX_VALUE );

dump( 0 );

dump( Integer.MIN_VALUE );

}

static void dump( int what )

{

System.out.println( what + " " + Integer.toBinaryString( what ) );

}

}

C:\source\java\ebanx\rtl>java a

2147483647 1111111111111111111111111111111

0 0

-2147483648 10000000000000000000000000000000

BIJ001a at 2007-7-12 23:16:11 > top of Java-index,Java Essentials,Java Programming...
# 3
There is no sign bit actually, it's just stored in a 2's complement notation. If the MSB were a sign bit, you could just flip it to negate a number.
-Kayaman-a at 2007-7-12 23:16:11 > top of Java-index,Java Essentials,Java Programming...
# 4
It's called 2's compliment. The MSB (Most significant bit indicates a negative number) you also have to flip the bits and add 1.It avoids any issue of having two 0s i.e.-0 and +0
ChristopherAngela at 2007-7-12 23:16:11 > top of Java-index,Java Essentials,Java Programming...