Convert text representation of hexadecimal integer to double value
converts the hexadecimal integer represented by
D = hex2dec(
hexStr to the equivalent
decimal number and returns it as a double-precision floating-point value.
hexStr represents an integer greater than or equal to
hex2dec might not represent it
exactly as a floating-point value.
Convert a character vector that represents a hexadecimal value to a decimal number.
hexStr = '3FF'; D = hex2dec(hexStr)
D = 1023
Starting in R2019b, you can write values in hexadecimal format directly without using
hex2dec. Use the
0x prefix and do not use quotation marks. MATLAB® stores the value as an integer, not as text.
D = 0x3FF
D = uint16 1023
Create a string array that represents multiple hexadecimal values.
hexStr = ["3FF" "7A" "E"]
hexStr = 1x3 string "3FF" "7A" "E"
Convert the hexadecimal values and return a numeric array.
D = hex2dec(hexStr)
D = 1×3 1023 122 14
Starting in R2019b, it is recommended that you create a numeric array using hexadecimal literals instead of converting text with
D = [0x3FF 0x7A 0xE]
D = 1x3 uint16 row vector 1023 122 14
hexStr— Text representing hexadecimal numbers
Text representing hexadecimal numbers, specified as a character array, cell array of
character vectors, or string array.
hexStr represents hexadecimal
digits using the characters
9 and either
hexStr is a character array with multiple rows or a cell
array of character vectors, then the output is a numeric column vector.
hexStr is a string array, then the output is a numeric
array that has the same dimensions.
Starting in R2020a,
hexStr can be text that includes the same
0X) and suffixes used by
hexadecimal literals. For example, these calls to
return the number
hex2dec('FF') hex2dec('0xFF') hex2dec('0xFFs32')
Also, in R2020a
hexStr can represent the two's complement of a
negative number, using a suffix that specifies a signed integer type. For example,
-1, because the
s8 suffix specifies the 8-bit signed integer type. In previous
hexStr cannot represent a negative number.
Behavior changed in R2020b
hex2dec function issues a warning when input values are greater than or equal to
flintmax. In previous releases,
hex2dec did not issue this warning.
hex2dec now issues a warning because inputs representing
integers greater than or equal to
flintmax might not be represented
exactly as double-precision floating-point values.
To convert values greater than
flintmax exactly, consider one of
In place of scalar text inputs, use hexadecimal or binary literals representing the same values. When you write a value as a literal, MATLAB® stores it as an integer that represents the value exactly. For more information, see Hexadecimal and Binary Values.
To convert hexadecimal inputs greater than
can use the
sscanf function with the
%lx operator. When you use
converted values are integers that have the
uint64 data type.
These integers have enough storage to represent values greater than
Usage notes and limitations:
Input text must be specified as a character array or string scalar. Cell arrays are not supported.