# Sign bit

In computer science, the sign bit is a bit in a signed number representation that indicates the sign of a number. Although only signed numeric data types have a sign bit, it is invariably located in the most significant bit position,[1] so the term may be used interchangeably with "most significant bit" in some contexts.

Almost always, if the sign bit is 0, the number is non-negative (positive or zero).[1] If the sign bit is 1 then the number is negative. Formats other than two's complement integers allow a signed zero: distinct "positive zero" and "negative zero" representations, the latter of which does not correspond to the mathematical concept of a negative number.

When using a complement representation, to convert a signed number to a wider format the additional bits must be filled with copies of the sign bit in order to preserve its numerical value,[2]: 61–62  a process called sign extension or sign propagation.[3]

## Sign bit weight in Two's Complement

Bits Value using Two's Complement
0000 0
0001 1
0111 7
1000 -8
1001 -7
1111 -1

Two's Complement is by far the most common format for signed integers. In Two's Complement, the sign bit has the weight -2w-1 where w is equal to the bits position in the number.[1] With an 8-bit integer, the sign bit would have the value of -28-1, or -128. Due to this value being larger than all the other bits combined, having this bit set would ultimately make the number negative, thus changing the sign.

## Sign bit weight in Ones' Complement

Bits Value using One's Complement
0000 0
0001 1
0111 7
1000 -7
1001 -6
1111 -0

Ones' complement is similar to Two's Complement, but the sign bit has the weight -(2w-1 +1) where w is equal to the bits position in the number.[citation needed] With an 8-bit integer, the sign bit would have a value of -(28-1 +1), or -127. This allows for two types of zero: positive and negative, which is not possible with Two's complement.

## Sign bit in Sign Magnitude Integers

Bits Value using Sign Magnitude
0000 0
0001 1
0111 7
1000 -0
1001 -1
1111 -7

Using Sign Magnitude, the sign bit directly determines the sign. If the sign bit is 0, the number is positive; if the sign bit is 1, the number is negative.[2]: 52–54  Similarly with Ones' Complement, this allows for both a positive and a negative zero.

## Sign bit in Floating Point Numbers

Floating-point numbers, such as IEEE format, IBM format, VAX format, and even the format used by the Zuse Z1 and Z3 use a Sign and magnitude representation.[citation needed]

## References

1. ^ a b c "Intel® 64 and IA-32 Architectures Software Developer's Manual Combined Volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4". Intel. Retrieved 2024-03-13.
2. ^ a b Bryant, Randal E.; O'Hallaron, David R. (2003). "Chapter 2: Representing and Manipulating Information". Computer Systems: a Programmer's Perspective. Upper Saddle River, New Jersey: Prentice Hall. ISBN 0-13-034074-X.
3. ^ "Data Dictionary (Glossary and Algorithms)". Adroit Data Recovery Centre Pte Ltd. Archived from the original on 2017-04-19. Retrieved 2014-12-15.