目录
num2hex将单精度数和双精度数转换为 IEEE 十六进制格式。
语法
num2hex函数调用格式为:
hexStr = num2hex(X)
X为输入数组,指定为数值数组。它的数据类型为:single
或者 double
说明
hexStr = num2hex(X)使用十六进制数字返回X的 IEEE® 格式表示形式。
-
如果X是双精度数,则hexStr 有 16 个字符。
-
如果X是单精度数,则hexStr 有 8 个字符。
-
如果X是向量、矩阵或多维数组,则hexStr是二维字符数组。hexStr 的每行表示X的一个元素。
与dec2hex函数不同,num2hex可以转换具有小数部分的浮点值。此外,num2hex能够正确处理 NaN 和 Inf 值以及非规范数。num2hex生成的格式与 format hex 命令生成的格式相同。
示例
转换具有小数部分的双精度数
创建一个数,并用十六进制数字将其表示为 IEEE® 格式。X是双精度数,并且有小数部分。如下所示:
X = 3.1416;
hexStr = num2hex(X)
hexStr =
'400921ff2e48e8a7'
由于hexStr是 IEEE 格式,它也表示X的小数部分。可以使用 hex2num
函数将 hexStr
转换回数字。如下所示:
hex2num(hexStr)
ans = 3.1416
转换单精度数
创建一个单精度数。如下所示:
X = single(2.7182818)
X = single
2.7183
转换X,num2hex
函数仅使用八个十六进制数字表示单精度数。如下所示:
hexStr = num2hex(X)
hexStr =
'402df854'
表示负数、NaN 和 Inf
转换一个负数并用 IEEE® 格式表示它。如下所示:
num2hex(-1)
ans =
'bff0000000000000'
转换NaN,如下所示:
num2hex(NaN)
ans =
'fff8000000000000'
转换Inf,如下所示:
num2hex(Inf)
ans =
'7ff0000000000000'
表示浮点数数组
创建一个数值数组,如下所示:
X = [3.1416 1.37e-5 1023.92];
转换X的元素。num2hex
函数返回表示这些值的字符数组。如下所示:
hexStr = num2hex(X)
hexStr = 3x16 char array
'400921ff2e48e8a7'
'3eecbb21a99df39b'
'408fff5c28f5c28f'