Main Content

pow2

2 を底とする指数と浮動小数点数のスケーリング

説明

Y = pow2(E) は、2 の E 乗である Y=2E を計算します。

Y = pow2(X,E) は、X を 2 の E 乗で乗算した Y=X2E を計算します。

すべて折りたたむ

2 の E 乗を求めます。

E = [1 -2 4 -4 3 9];
Y = pow2(E)
Y = 1×6

    2.0000    0.2500   16.0000    0.0625    8.0000  512.0000

この例では、2 の累乗による仮数のスケーリングの結果について、標準の IEEE® 算術演算による結果と pow2 による結果を比較します。

いくつかの仮数の正確な値を表す文字ベクトルの cell 配列を作成します。指数を指定します。

Xcell = {'1/2','pi/4','-3/4','1/2','1-eps/2','1/2'}';
E = [1 2 2 -51 1024 -1021]';

標準の IEEE 算術演算で Xcell2E 乗でスケーリングした結果を Ycell として指定します。これらの結果を table で表示します。

Ycell = {'1','pi','-3','eps','realmax','realmin'}';
table(Xcell,E,Ycell,'VariableNames',["Significand" "Exponent" "Value"])
ans=6×3 table
    Significand    Exponent       Value   
    ___________    ________    ___________

    {'1/2'    }         1      {'1'      }
    {'pi/4'   }         2      {'pi'     }
    {'-3/4'   }         2      {'-3'     }
    {'1/2'    }       -51      {'eps'    }
    {'1-eps/2'}      1024      {'realmax'}
    {'1/2'    }     -1021      {'realmin'}

次に、table の結果を pow2 と比較します。

Xcell を浮動小数点数 X に変換します。pow2(X,E) を使用して、X2E 乗でスケーリングします。

X = str2num(char(Xcell));
Y = pow2(X,E)
Y = 6×1
10308 ×

    0.0000
    0.0000
   -0.0000
    0.0000
    1.7977
    0.0000

Ycell を浮動小数点数 Ynum に変換します。isequal を使用して YYnum を比較し、pow2 が標準の IEEE 算術演算に従っていることを示します。

Ynum = str2num(char(Ycell))
Ynum = 6×1
10308 ×

    0.0000
    0.0000
   -0.0000
    0.0000
    1.7977
    0.0000

isequal(Y,Ynum)
ans = logical
   1

入力引数

すべて折りたたむ

指数値。スカラー、ベクトル、行列、多次元配列、table、または timetable として指定します。

データ型: single | double | table | timetable

仮数値。E と同じサイズのスカラー、ベクトル、行列、または多次元配列として指定します。

データ型: single | double | table | timetable

ヒント

構文 Y = pow2(X,E) は、ANSI® C 関数 ldexp() および IEEE® の浮動小数点標準関数 scalbn() に対応します。結果 Y は、X の浮動小数点指数に E を加えることで高速に計算されます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する