# Signed Integers

## Understanding Signed Integers

• Signed integers can represent both negative and positive numbers, including zero.
• In computing, signed integers are typically used when a variable could have a negative value.
• The highest bit (the sign bit) is used to denote whether the number is positive (0) or negative (1).
• Remainder of the bits then represent the magnitude of the number.

## Binary Representation of Signed Integers

• In binary representation, positive numbers are denoted the same way as in unsigned binary.
• To represent negative numbers, two methods are commonly used: sign and magnitude and two’s complement.

## Sign and Magnitude

• In sign and magnitude, the top bit (most significant bit) is used for the sign: 0 for positive, 1 for negative.
• The rest of the bits are used for the magnitude of the number.
• For instance, the number -7 would be represented in an 8-bit system as `10000111`.

## Two’s Complement

• In the two’s complement method, the negative of a number is obtained by inverting all the bits of its binary representation and then adding 1 to the result.
• This system is commonly used as it simplifies the calculations for the computer, allowing addition and subtraction to be performed using the same circuitry.
• For instance, to represent -7 in an 8-bit system using two’s complement, we would flip the bits of 7 (`00000111`), getting `11111000`, and then add 1, obtaining `11111001`.

## Bit Overflow and Underflow with Signed Integers

• Bit overflow occurs when an operation creates a number too large for the signed integer to represent, such as adding two large positive numbers together to result in a number that should be negative.
• Bit underflow occurs when a number is too small to be represented by the signed integer, such as subtracting a large positive number from a small positive number to result in a large positive number.
• Both situations create incorrect results and need to be managed within your programs.