getting '0F' instead of 'F' for dec2hex(15)
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Ronaldo
am 6 Okt. 2013
Kommentiert: Walter Roberson
am 6 Okt. 2013
I want to apply dec2hex function to a very large matrix. For a reason which is beyond the scope of this question, I need to get '0F' instead of 'F' for dec2hex(15). Since the running time is a matter, I want to find a time-efficient method to fix this problem.
0 Kommentare
Akzeptierte Antwort
Jan
am 6 Okt. 2013
Bearbeitet: Jan
am 6 Okt. 2013
dec2hex(15, 2)
% >> 0F
Of course such tricks are explained in the documentation ( help dec2hex ), so it is worth to read it before posting in the forum.
sprintf is slightly faster than dec2hex:
sprintf('%02x', 15)
x = randi([0, 255], 1, 1e3);
tic, for k=1:100, s = dec2hex(x, 2); end, toc
tic, for k=1:100, s = sprintf('%02x', x); end, toc
Elapsed time is 0.069916 seconds.
Elapsed time is 0.052959 seconds.
While dec2hex replies a CHAR-matrix, sprintf creates a CHAR vector, which might be more useful.
2 Kommentare
Walter Roberson
am 6 Okt. 2013
There is no difference between capital and small letters in hex2dec().
To get uppercase out of sprintf(), use X instead of x. %02X instead of %02x
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!