hex2dec
MATLABでのとhex2num
とその反対の違いがわかりません。
16進値3FD3B502C055FE00があるとします。を使用するhex2dec
と、4.5992e+018になります。を使用するhex2num
と、0.3079になります。どうしたの?
お気づきのように、これらの関数の動作は大きく異なります。hex2dec
生のバイト変換によって16進文字列を浮動小数点数に変換しますが、これは期待どおりに機能することがわかったと思います。ただし、hex2num
16進文字列をIEEE倍精度表現に変換します。
IEEE 754倍精度標準では、1ビットの符号、11ビットの指数、および52ビットの小数部が必要です。したがってhex2num
、この形式で16進数を解析し、とは非常に異なる結果を生成しhex2dec
ます。
hex2dec-16進数の文字列を10進数に変換します
説明d=hex2dec('hex_value')は、hex_valueを浮動小数点整数表現に変換します。引数hex_valueは、MATLAB文字列に格納されている16進整数です。hex_valueの値は、16進数の10,000,000,000,000より小さくする必要があります。
hex_valueが文字配列の場合、各行は16進文字列として解釈されます。
hex2num-16進数の文字列を倍精度の数値に変換します
説明n=hex2num(S)、ここでSは16進数を表す16文字の文字列であり、それが表すIEEE®倍精度浮動小数点数nを返します。右側にゼロが埋め込まれるのは16文字未満です。Sが文字配列の場合、各行は倍精度数として解釈されます。
NaN、無限大、およびデノルムは正しく処理されます。
3FD3B502C055FE00が(10,000,000,000,000)16より大きく、範囲外であることを知っています。