コンピュータにおいて、ビット番号付けとは、 2進数におけるビットの位置を識別するために用いられる慣習である。これらのビットは、メモリのバイトやワード内のビット、あるいはCPU内部のレジスタやデータバス内のビットを指す。
コンピュータ において、最下位ビット( LSb ) は、2 進整数における最下位桁を表すビット位置です。同様に、最上位ビット( MSb ) は、2 進整数における最上位桁を表します。LSb は、下位ビットと呼ばれることもあります。位置表記では下位桁を右側に記述する慣例があるため、LSb は最右ビットと呼ばれることもあります。MSb も同様に、最上位ビットまたは最左ビットと呼ばれます。どちらの場合も、LSb と MSb は、 10 進整数の最下位桁と最上位桁に直接対応します。
ビットインデックスは、2 進数における値の位置表記に対応します。そのため、ビットインデックスは、値のバイト順など、デバイス上での値の格納方法には影響されません。むしろ、それはバイナリ数値自体の特性です。これは、ビットシフトによるプログラミングでよく利用されます。 の値は、バイナリ整数 ( の値が ) のn番目のビットに対応します。1 <<n2n
デジタルステガノグラフィーでは、画像ファイルや音声ファイルの最下位ビットに情報を操作して保存することで、機密性の高いメッセージを隠蔽することができます。ユーザーは後で、操作されたピクセルの最下位ビットを抽出することで、元のメッセージを復元できます。これにより、デジタル情報の保存や転送を隠蔽することが可能になります。
![]()
色の最下位ビットを操作することで、色に非常に微妙で、通常は気づかれないような影響を与える様子を示す図です。この図では、緑色は10進数と2進数の両方でRGB値で表されています。最後の2ビットを囲む赤い枠は、2進数表現で変更された最下位ビットを示しています。
この表は、10進数値149の例と最下位ビット(LSb)の位置を示しています。この例では、1の位の値(10進数で1または0)はビット位置0(n = 0)にあります。MSbは最上位ビット、LSbは最下位ビットを表します。
この表は、2の補数表現を用いた8ビット符号付き10進数値の例を示しています。最上位ビット(MSb)は符号付き整数において負の重みを持ち、この場合は-2⁷ = -128となります。その他のビットは正の重みを持ちます。最下位ビット(lsb )の重みは1です。この場合の符号付き値は-128+2 = -126となります。
「最上位ビット先」と「最下位ビット先」という表現は、シリアル伝送プロトコルやストリーム(例えばオーディオストリーム)において、ワイヤを介して送信されるバイト列のビットの順序を示すものです。
最上位ビットが先に到着するとは、最上位ビットが最初に到着することを意味します。したがって、たとえば、16 進数 は0x12、000100102 進数表現では、 のシーケンスとして到着します0 0 0 1 0 0 1 0。
最下位ビットが先に到着するとは、最下位ビットが最初に到着することを意味します。したがって、たとえば同じ16進数は0x12、 2進00010010数表現では(逆順の)シーケンスとして到着します0 1 0 0 1 0 0 0。
最下位ビット (LSb) のビット番号がゼロから始まる場合、その番号付け方式はLSb 0と呼ばれます。[ 1 ]このビット番号付け方式の利点は、符号なしの任意の数値について、ビット番号と基数2を用いたべき乗によって数値の値を計算できることです。[ 2 ]したがって、符号なしバイナリ整数の値は
ここで、b i は番号iのビットの値を表し、N はビットの総数を表します。
ビット番号が最上位ビット (MSb) のゼロから始まる場合、その番号付け方式はMSb 0と呼ばれます。
符号なしバイナリ整数の値は次のようになります。
MSb 1 番号付けの場合、符号なしバイナリ整数の値は次のとおりです。
PL/I番号は、最左端のビットが 1 から始まるビット列です。
FortranのBTEST関数はLSb 0番号を使用します。