Reference articles on history, science, culture and more
Encyclopedia

Sign bit

Bit indicating the sign of a number

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, 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). 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, a process called sign extension or sign propagation.

01Sign 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 bit's position in the number. 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.

02Sign 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 bit's position in the number. 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.

03Sign 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. Similarly with ones' complement, this allows for both a positive and a negative zero.

04Sign 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.

Watch videos about Sign bitExplainers and documentaries on YouTube (opens in a new tab)

Sources and credits

This article is adapted from the Wikipedia article Sign bit, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.

Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.