convert binary string into hex

46 views (last 30 days)
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

Accepted Answer

Walter Roberson
Walter Roberson on 3 Dec 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').');

More Answers (1)

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

Categories

Find more on Time Series in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!