ビット番号

コンピューターにおいてビット番号付けは2 進数ビット位置を識別するために使用される規則です

ビットの重要性とインデックス

10 進数 149 の 2進表現。LSb が強調表示されています。LSb は値 1 を表します。
10 進数 149 の符号なし2 進表現。MSb が強調表示されています。MSb は 128 という値を表します。

コンピューティング において最下位ビット( LSb ) は、2 進整数内のビット位置であり、整数の 2 進数の 1 の位を表します。同様に、最上位ビット( MSb ) は、2 進整数の最上位位を表します。位置表記法では、重要度の低い桁ほど右側に書くという慣例により、 LSb は下位ビットまたは右端ビットと呼ばれることもあります。同様に、 MSb は上位ビットまたは左端ビットと呼ばれます。どちらの場合も、 LSb と MSb は、 10 進整数の最下位と最上位桁に直接対応しています

ビット インデックスは、基数 2 の値の位置表記と相関します。このため、ビット インデックスは、値のバイト順序など、デバイス上での値の格納方法には影響されません。むしろ、これはバイナリの数値自体のプロパティです。これは、ビット シフトを介してプログラミングでよく使用されます。 の値は、バイナリ整数 (値 ) のn番目のビットに対応します1 << n2n

デジタルステガノグラフィーの最下位ビット

色の最下位ビットを操作すると、色に非常に微妙で通常は気付かない影響を与える可能性があることを示す図。この図では、緑は 10 進数と 2 進数の両方で RGB 値で表されます。最後の 2 ビットを囲む赤いボックスは、2 進数表現で変更された最下位ビットを示しています。
色の最下位ビットを操作すると、色に非常に微妙で通常は気付かない影響を与える可能性があることを示す図。この図では、緑は10 進数と 2 進数の両方でRGB値で表されます。最後の 2 ビットを囲む赤いボックスは、2 進数表現で変更された最下位ビットを示しています。

デジタルステガノグラフィーでは、画像や音声ファイルの最下位ビットの情報を操作して保存することで、機密メッセージを隠すことができます。ユーザーは、後で操作されたピクセルの最下位ビットを抽出して元のメッセージを復元することで、この情報を復元できます。これにより、デジタル情報の保存や転送を隠したままにすることができます。

符号なし整数の例

この表は、10 進数値 149 の例と LSb の位置を示しています。この特定の例では、単位値 (10 進数の 1 または 0) の位置はビット位置 0 (n = 0) にあります。MSb は最上位ビットを表し、LSb は最下位ビットを表します。

2進数(10進数:149) 1 0 0 1 0 1 0 1
与えられたビット位置nのビット重み(2n 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0
ビット位置ラベル MSb LSb

最上位ビットを先にするか最下位ビットを先にするか

「最上位ビットが最初」および「最下位ビットが最後」という表現は、シリアル伝送プロトコルまたはストリーム (オーディオ ストリームなど) でワイヤ経由 で送信されるバイト内のビットのシーケンスの順序を示します。

「最上位ビットが最初」とは、最上位ビットが最初に到着することを意味します。したがって、たとえば、16 進数 は0x12000100102 進表現では、シーケンス として到着します0 0 0 1 0 0 1 0

最下位ビットが最初とは、最下位ビットが最初に到着することを意味します。したがって、たとえば、同じ 16 進数 を0x12再び000100102 進表現すると、(逆の) シーケンス として到着します0 1 0 0 1 0 0 0

LSb 0 ビット番号

LSb 0: 8ビットの2進数を格納するコンテナ。強調表示された最下位ビットにはビット番号0が割り当てられます。

ビット番号が最下位ビット(LSb)のゼロから始まる場合、番号付け方式はLSb 0と呼ばれます[1]このビット番号付け方法の利点は、任意の符号なし数値に対して、その数値の値をビット番号と2を底とする累乗を使用して計算できることです。 [2]したがって、 符号なし2進整数の値は

ここで、b i は番号iのビットの値を表しN は合計ビット数を表します。

MSb 0 ビット番号

MSb 0: 8ビットの2進数を格納するコンテナ。強調表示された最上位ビットにはビット番号0が割り当てられます。

最上位ビット(MSb)のビット番号が 0 から始まる場合、番号付け方式はMSb 0と呼ばれます

したがって、符号なし2進整数の値は

LSb計算

数値の LSb は、式の時間計算量で計算できます。ここで、 はビット単位のAND演算を意味し、は に対するビット単位のNOT演算を意味します

他の

ALGOL 68elem演算子は、事実上「MSb 1 ビット番号付け」です。ビットは左から右に番号付けされ、最初のビット (bits elem 1) が「最上位ビット」となり、式 (bits elem bits width) が「最下位ビット」となります。同様に、ビットがブール値の配列([ ] bool bits) に強制変換 (型キャスト) されると、この配列の最初の要素 (bits[ lwb bits]) が再び「最上位ビット」となります。

MSb 1の番号付けの場合、符号なし2進整数の値は

PL/I は、左端のビットが 1 から始まる BIT文字列に番号を付けます。

Fortran BTEST関数 LSb 0 の番号付けを使用します。

参照

参考文献

  1. ^ Langdon, Glen G. (1982).コンピュータデザイン. Computeach Press Inc. p. 52. ISBN 0-9607864-0-6
  2. ^ 「ビット番号」 。 2021年3月30日閲覧
「https://en.wikipedia.org/w/index.php?title=Bit_numbering&oldid=1226431652#Most_significant_bit」から取得