メインコンテンツまでスキップ

2.3.2. Bit String to Integer (ビット列から整数へ)

2.3.2. Bit String to Integer (ビット列から整数へ)

bits2int 変換は, blen ビットのシーケンスを入力として受け取り, 2^qlen よりも小さい非負整数を出力します。これは以下のステップから構成されます:

  1. シーケンスは最初に長さ qlen に切り詰められるか拡張されます:

    • qlen < blen の場合, qlen 個の左端のビットが保持され, 後続のビットは破棄されます。

    • そうでない場合, qlen-blen 個のビット (値ゼロ) がシーケンスの左側に追加されます (つまり, シーケンス順序で入力ビットの前に)。

  2. 結果のシーケンスは, ビッグエンディアン規則を使用して整数値に変換されます: 入力ビットが b_0 (左端) から b_(qlen-1) (右端) と呼ばれる場合, 結果の値は次のようになります:

    b_0*2^(qlen-1) + b_1*2^(qlen-2) + ... + b_(qlen-1)*2^0

bits2int 変換は次の方法でも説明できます: 入力ビットシーケンス (長さ blen) はビッグエンディアン規則を使用して整数に変換されます。次に, blen が qlen よりも大きい場合, 結果の整数は blen-qlen を2で累乗した値で除算されます (ユークリッド除算: 余りは破棄されます)。大きな整数の算術演算の多くのソフトウェア実装では, その除算は blen-qlen ビットによる "右シフト" に相当します。