Main Content

num2hex

将单精度数和双精度数转换为 IEEE 十六进制格式

说明

示例

hexStr = num2hex(X) 使用十六进制数字返回 X 的 IEEE® 格式表示形式。

  • 如果 X 是双精度数,则 hexStr 有 16 个字符。

  • 如果 X 是单精度数,则 hexStr 有 8 个字符。

  • 如果 X 是向量、矩阵或多维数组,则 hexStr 是二维字符数组。hexStr 的每行表示 X 的一个元素。

dec2hex 函数不同,num2hex 可以转换具有小数部分的浮点值。此外,num2hex 能够正确处理 NaNInf 值以及非正规数。

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

转换 Xnum2hex 函数仅使用八个十六进制数字表示单精度数。

hexStr = num2hex(X)
hexStr = 
'402df854'

转换一个负数并用 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'

输入参数

全部折叠

输入数组,指定为数值数组。

数据类型: single | double

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出