Main Content

bin2num

quantizer オブジェクトを使用し、2 の補数の 2 進数文字列を数に変換

説明

y = bin2num(q,b)quantizer オブジェクト q のプロパティを使用して 2 進数文字ベクトル b を数値配列 y に変換します。

b が 2 進数文字列を含む cell 配列である場合、y は数値配列を含む同じ次元の cell 配列になります。

[y1,y2,…] = bin2num(q,b1,b2,…) は 2 進数文字ベクトル b1b2、… を数値配列 y1y2、… に変換します。

すべて折りたたむ

quantizer オブジェクトで指定したプロパティを使用して、2 進数文字ベクトルと数値配列の間の変換を行います。

数値配列から 2 進数文字列への変換

語長 4 ビット、小数部の長さ 3 ビットを指定する quantizer オブジェクトを作成します。quantizer オブジェクトのその他のプロパティには、既定値である符号付き固定小数点データ型、負の無限大方向への丸め、オーバーフローで飽和の指定を使用します。

q = quantizer([4 3])
q =


        DataMode = fixed
       RoundMode = floor
    OverflowMode = saturate
          Format = [4  3]

数値の配列を作成します。

[a,b] = range(q);
x = (b:-eps(q):a)
x = 1×16

    0.8750    0.7500    0.6250    0.5000    0.3750    0.2500    0.1250         0   -0.1250   -0.2500   -0.3750   -0.5000   -0.6250   -0.7500   -0.8750   -1.0000

quantizer オブジェクト q で指定したプロパティを使用して、数値ベクトル x を 2 進数表現に変換します。num2bin は、常に列内の 2 進数表現を返すことに注意してください。

b = num2bin(q,x)
b = 16x4 char array
    '0111'
    '0110'
    '0101'
    '0100'
    '0011'
    '0010'
    '0001'
    '0000'
    '1111'
    '1110'
    '1101'
    '1100'
    '1011'
    '1010'
    '1001'
    '1000'

bin2num を使用して逆演算を実行します。

y = bin2num(q,b)
y = 16×1

    0.8750
    0.7500
    0.6250
    0.5000
    0.3750
    0.2500
    0.1250
         0
   -0.1250
   -0.2500
      ⋮

2 進数文字列から数値配列への変換

小数形式で表現された 3 ビット固定小数点の 2 の補数はすべて、以下のように求められます。

q = quantizer([3 2]);
b = ['011  111'
     '010  110'
     '001  101'
     '000  100'];

bin2num を使用して、これらの値に等価な数値を表示します。

x = bin2num(q,b)
x = 4×2

    0.7500   -0.2500
    0.5000   -0.5000
    0.2500   -0.7500
         0   -1.0000

入力引数

すべて折りたたむ

変換に使用するデータ型プロパティ。quantizer オブジェクトとして指定します。

例: q = quantizer([16 15]);

変換する 2 進数文字列。2 進数文字列を含む文字ベクトル、文字配列または cell 配列として指定します。

データ型: string | char | cell

ヒント

  • bin2num および num2bin は、互いに逆です。num2bin は、常に列内の 2 進数表現を返すことに注意してください。

アルゴリズム

  • 固定小数点 2 進数表現は、2 の補数です。

  • 浮動小数点 2 進数表現は、IEEE® Standard 754 スタイルです。

  • 2 進数の桁数が、数値の表現に必要な桁数より少ない場合、固定小数点では左側からゼロでパディングされ、浮動小数点では右側からゼロでパディングされます。

バージョン履歴

R2006a より前に導入