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.