MATLAB 帮助中心
将十六进制整数的文本表示转换为双精度值
D = hex2dec(hexStr)
D = hex2dec(hexStr) 将由 hexStr 表示的十六进制整数转换为等效的十进制数,并将其以双精度浮点值形式返回。
D
hexStr
如果 hexStr 表示大于或等于 flintmax 的整数,则 hex2dec 可能不会将其精确表示为浮点值。
flintmax
hex2dec
示例
全部折叠
将表示十六进制值的字符向量转换为十进制数。
hexStr = '3FF'; D = hex2dec(hexStr)
D = 1023
从 R2019b 开始,您可以直接以十六进制格式写入值,而无需使用 hex2dec。使用 0x 前缀,不要使用引号。MATLAB® 将该值存储为整数,而不是文本。
0x
D = 0x3FF
D = uint16 1023
创建一个表示多个十六进制值的字符串数组。
hexStr = ["3FF" "7A" "E"]
hexStr = 1×3 string "3FF" "7A" "E"
转换十六进制值并返回数值数组。
D = 1×3 1023 122 14
从 R2019b 开始,建议您使用十六进制字面值创建数值数组,而不是使用 hex2dec 转换文本。
D = [0x3FF 0x7A 0xE]
D = 1×3 uint16 row vector 1023 122 14
表示十六进制数的文本,指定为字符数组、字符向量元胞数组或字符串数组。hexStr 使用字符 0-9 以及 A-F 或 a-f 表示十六进制数字。
0
9
A
F
a
f
如果 hexStr 是包含多行的字符数组或字符向量元胞数组,则输出为数值列向量。
如果 hexStr 是字符串数组,则输出为具有相同维度的数值数组。
从 R2020a 开始,hexStr 可以是包含十六进制字面值使用的相同前缀(0x 或 0X)和后缀的文本。例如,对 hex2dec 的以下调用都会返回数字 255。
0X
255
hex2dec('FF') hex2dec('0xFF') hex2dec('0xFFs32')
此外,在 R2020a 中,hexStr 还可以通过使用指定有符号整数类型的后缀来表示负数的 2 的补码。例如,hex2dec('0xFFs8') 返回 -1,因为 s8 后缀指定 8 位有符号整数类型。在以前的版本中,hexStr 无法表示负数。
hex2dec('0xFFs8')
-1
s8
全部展开
用法说明和限制:
输入文本必须指定为字符数组或字符串标量。不支持元胞数组。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
当输入值大于或等于 flintmax 时,hex2dec 函数会发出警告。在以前的版本中,hex2dec 在这种情况下不发出警告。
hex2dec 现在发出警告,因为表示大于或等于 flintmax 的整数的输入可能无法精确表示为双精度浮点值。
要准确转换大于 flintmax 的值,请考虑以下备选方法之一:
使用表示相同值的十六进制或二进制字面值代替标量文本输入。当您将值写为字面值时,MATLAB® 会将其存储为精确表示该值的整数。有关详细信息,请参阅十六进制和二进制值。
要转换大于 flintmax 的十六进制输入,您可以将 sscanf 函数与 %lx 运算符结合使用。当您使用 %lx 时,转换后的值是具有 uint64 数据类型的整数。这些整数有足够的存储空间来精确表示大于 flintmax 的值。
sscanf
%lx
uint64
.
dec2hex | format | hex2num | sprintf | bin2dec | base2dec | flintmax
dec2hex
format
hex2num
sprintf
bin2dec
base2dec
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处