, bit numbering is the convention used to identify the bit
positions in a binary number
or a container of such a value. The bit number starts with zero and is incremented by one for each subsequent bit position.
Least significant bit
of decimal 149, with the LSB highlighted. The MSB in an 8-bit binary number represents a value of 128 decimal. The LSB represents a value of 1.]]
, the least significant bit (LSB) is the bit
position in a binary integer
giving the units value, that is, determining whether the number is even or odd. The LSB is sometimes referred to as the ''low-order bit'' or ''right-most bit'', due to the convention in positional notation
of writing less significant digits further to the right. It is analogous to the least significant digit
of a decimal
integer, which is the digit in the ''ones'' (right-most) position.
It is common to assign each bit a position number, ranging from zero to N-1, where N is the number of bits in the binary representation used. Normally, the bit number is simply the exponent for the corresponding bit weight in base-2 (such as in 231
). A few CPU manufacturers have assigned bit numbers the opposite way (which is not the same as different endianness
). In any case, the least significant bit itself remains unambiguous as the unit bit.
The least significant bits (plural) are the bits of the number closest to, and including, the LSB. The least significant bits have the useful property of changing rapidly if the number changes even slightly. For example, if 1 (binary 00000001) is added to 3 (binary 00000011), the result will be 4 (binary 00000100) and three of the least significant bits will change (011 to 100). By contrast, the three most significant bit
s (MSBs) stay unchanged (000 to 000). Because of this volatility, least significant bits are frequently employed in pseudorandom number generator
tools, hash function
s and checksum
Least significant bit in digital steganography
In digital steganography
, sensitive messages may be concealed by manipulating and storing information in the least significant bits of an image or a sound file. The user may later recover this information by extracting the least significant bits of the manipulated pixels to recover the original message. This allows the storage or transfer of digital information to remain concealed.
Least significant byte
''LSB'' can also stand for least significant ''byte''. The meaning is parallel to the above: it is the byte
) in that position of a multi-byte number which has the least potential value.
Most significant bit
, the most significant bit (MSB, also called the high-order bit) is the bit
position in a binary number
having the greatest value. The MSB is sometimes referred to as the high-order bit or left-most bit due to the convention in positional notation
of writing more significant digits further to the left.
The MSB can also correspond to the sign bit
of a signed binary number
. In one's
and two's complement
notation, "1" signifies a negative number and "0" signifies a positive number.
It is common to assign each bit a position number ranging from zero to N−1 where N is the number of bits in the binary representation used. Normally, this is simply the exponent for the corresponding bit weight in base-2 (such as in
). Although a few CPU manufacturers assign bit numbers the opposite way (which is not the same as different endianness
), the ''MSB'' unambiguously remains the ''most'' significant bit. This may be one of the reasons why the term ''MSB'' is often used instead of a bit number, although the primary reason is probably that different number representations use different numbers of bits.
By extension, the most significant bits (plural) are the bits closest to, and including, the MSB.
representation of decimal 149, with the MSB highlighted. The MSB in an 8-bit binary number represents a value of 128 decimal. The LSB represents a value of 1.]]
Most significant byte
MSB can also stand for "most significant ''byte''". The meaning is parallel to the above: it is the byte (or Octet (computing)|octet
) in that position of a multi-byte number which has the greatest potential value.
To avoid this ambiguity, the less abbreviated terms "MSbit" or "MSbyte" are often used.
Unsigned integer example
This table illustrates an example of decimal value of 149 and the location of LSB. In this particular example, the position of unit value (decimal 1 or 0) is located in bit position 0 (n = 0). MSB stands for Most Significant Bit, while LSB stands for Least Significant Bit.
Position of LSB is independent of how the bit position is transmitted (Some system transmit MSB first, others transmit LSB first), which is a question more of a topic of Endianness
Most- vs least-significant bit first
The expressions ''most significant bit first'' and ''least significant bit first'' are indications on the ordering of the sequence of the bits in the bytes sent over a wire in a transmission protocol or in a stream (e.g. an audio stream).
''Most significant bit first'' means that the most significant bit will arrive first: hence e.g. the hexadecimal number
in binary representation, will arrive as the sequence
0 0 0 1 0 0 1 0
''Least significant bit first'' means that the least significant bit
will arrive first: hence e.g. the same hexadecimal number
in binary representation, will arrive as the (reversed) sequence
0 1 0 0 1 0 0 0
LSB 0 bit numbering
assigned the bit number 0]]
When the bit numbering starts at zero for the least significant bit
(LSB) the numbering scheme is called "LSB 0". This bit numbering method has the advantage that for any unsigned number
the value of the number can be calculated by using exponentiation
with the bit number and a base
of 2. The value of an unsigned binary integer
'' denotes the value of the bit with number ''i'', and ''N'' denotes the number of bits in total.
MSB 0 bit numbering
thumb|300px|right|MSB 0: A container for 8-bit binary number with the highlighted most significant bit
assigned the bit number 0
Similarly, when the bit numbering starts at zero for the most significant bit
(MSB) the numbering scheme is called "MSB 0".
The value of an unsigned binary integer is therefore
's elem operator is effectively "MSB 1 bit numbering" as the bits are numbered from left to right, with the first bit (bits elem 1) being the "most significant bit", and the expression (bits elem bits width) giving the "least significant bit". Similarly, when bits are coerced (typecast) to an array of Boolean
''bool bits), the first element of this array (bits''lwb bits
is again the "most significant bit".
For MSB 1 numbering, the value of an unsigned binary integer is
numbers strings starting with 1 for the leftmost bit.
function uses LSB 0 numbering.
CPUs usually employ "LSB 0" bit numbering, however both bit numbering conventions can be seen in big-endian
machines. Some architectures like SPARC
and Motorola 68000
use "LSB 0" bit numbering, while S/390
, PowerPC and PA-RISC
use "MSB 0".
The recommended style for Request for Comments
(RfC) documents is "MSB 0" bit numbering.
Bit numbering is usually transparent to the software
, but some programming languages like Ada
and hardware description languages like VHDL
allow specifying the appropriate bit order for data type representation.
*Binary numeral system
*Signed number representations
*Unit in the last place
*Find first set
*MAC address: Bit-reversed notation
* Bit numbering for different CPUs:
("Bit manipulation" and "Reversed Bit-Numbering" sections)
("Byte ordering and bit numbering")