How to Convert data from HEX codes to Numeric

6 visualizaciones (últimos 30 días)
Harsimran Singh
Harsimran Singh el 9 de Nov. de 2023
Comentada: Walter Roberson el 9 de Nov. de 2023
Hello, how can I convert data given in HEX codes to decimal.
  1. Read complete file as it is
  2. Output: Add a second column with values in Numeric.

Respuestas (2)

Voss
Voss el 9 de Nov. de 2023
format long g
T = readtable('hex codes example.xlsx')
Warning: Column headers from the file were modified to make them valid MATLAB identifiers before creating variable names for the table. The original column headers are saved in the VariableDescriptions property.
Set 'VariableNamingRule' to 'preserve' to use the original column headers as table variable names.
T = 19×1 table
HexCodes ___________________________ {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'00 FC' } {'FA 80 3E 11 01 04 00 00'} {'00 81 FF FF' } {'FA 80 3E 11 01 04 00 00'}
T.DecCodes = hex2dec(strrep(T.HexCodes,' ',''))
Warning: Hexadecimal numbers representing integers greater than or equal to flintmax might not be represented exactly as double-precision floating-point values.
T = 19×2 table
HexCodes DecCodes ___________________________ ____________________ {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'00 FC' } 252 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19 {'00 81 FF FF' } 8519679 {'FA 80 3E 11 01 04 00 00'} 1.80504955492534e+19
writetable(T,'hex and dec codes example.xlsx')

Steven Lord
Steven Lord el 9 de Nov. de 2023
Do you mean you have the hex representation of a double precision number and want to convert it into the corresponding double? See the num2hex and hex2num functions.
Or are you trying to convert integer values? In that case see the dec2hex and hex2dec functions.
  1 comentario
Walter Roberson
Walter Roberson el 9 de Nov. de 2023
hex2num() can only handle double precision . You need other approaches for single precision.
But they are unlikely to be single precision or double precision.
format long g
H2=[0xfa 0x80 0x3e 0x11 01 04 00 00]
H2 = 1×8
250 128 62 17 1 4 0 0
typecast(H2, 'double')
ans =
2.1751886233388e-311
swapbytes(ans)
ans =
-1.17933560861813e+282
typecast(H2, 'single')
ans = 1×2
1.0e+00 * 1.50281e-28 1.436331e-42
swapbytes(ans)
ans = 1×2
1.0e+00 * -3.329364e+35 2.424457e-38

Iniciar sesión para comentar.

Categorías

Más información sobre Numeric Types en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by