convert binary string into hex

38 Ansichten (letzte 30 Tage)
samah samir
samah samir am 2 Dez. 2020
Beantwortet: Stephen23 am 3 Dez. 2020
i need to convert this binary string [ '0101010011101010'] into hex or decimal
but in 2^4 mean (i need to convert 4bit by 4bit) not all number

Akzeptierte Antwort

Walter Roberson
Walter Roberson am 3 Dez. 2020
lookup = containers.Map(cellstr(dec2bin(0:15,4)),cellstr(dec2hex(0:15)));
binary_string = '0101010011101010';
output = cellfun(@(S) lookup(S), cellstr(reshape(binary_string, 4, []).')).';
This code assumes that binary_string is a multiple of 4 bits.
This is definitely not the only way to do the task. It has the advantage, though, that it does not need to convert the inputs into numeric form.
Another way:
output = cell2mat(regexprep(cellstr(reshape(binary_string,4,[]).'), cellstr(dec2bin(0:15,4)), cellstr(dec2hex(0:15)),'once').');

Weitere Antworten (1)

Stephen23
Stephen23 am 3 Dez. 2020
str = '0101010011101010';
fun = @(s)dec2hex(bin2dec(s));
out = regexprep(str,'.{1,4}(?=(.{4})*$)','${fun($&)}')
out = '54EA'

Kategorien

Mehr zu Time Series 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!

Translated by