When working with binary representations of integers you can calculate the maximum range of signed data types based on the number of bits used to represent the data using the formula:
lowest value: -2^(N-1)
highest value: 2^(N-1) - 1
where N is the number of bits.
For one reason or another, the "signed int" type you're talking about is represented by 16 bits, and the "signed long" is represented by 32 bits.
Also notice that the ranges you posted seem to be incomplete, note that the range of a 16 bit signed int goes down to -32768, which is one lower than your posted range.