Main Content


Convert text representation of hexadecimal integer to double value



D = hex2dec(hexStr) converts the hexadecimal integer represented by hexStr to the equivalent decimal number and returns it as a double-precision floating-point value.

If hexStr represents an integer greater than or equal to flintmax, then hex2dec might not represent it exactly as a floating-point value.


collapse all

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

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 hex2dec.

D = [0x3FF 0x7A 0xE]
D = 1x3 uint16 row vector

   1023    122     14

Input Arguments

collapse all

Text representing hexadecimal numbers, specified as a character array, cell array of character vectors, or string array. hexStr represents hexadecimal digits using the characters 0-9 and either A-F or a-f.

  • If hexStr is a character array with multiple rows or a cell array of character vectors, then the output is a numeric column vector.

  • If 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 prefixes (0x or 0X) and suffixes used by hexadecimal literals. For example, these calls to hex2dec each return the number 255.


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, hex2dec('0xFFs8') returns -1, because the s8 suffix specifies the 8-bit signed integer type. In previous releases, hexStr cannot represent a negative number.

Extended Capabilities

Version History

Introduced before R2006a

expand all