Перейти к содержанию
    

Как преобразовать bin строку в hex матрицу

Имеется длинная bin строка. Нужно ее преобразовать в hex формат

% Тест преобразования бинарной строки в hex 
bin_str = '0101101111010101010010101001011001011011110101010100101010010110';
bin_str = reshape(bin_str, [], 2);
hex_str_t = zeros(1,2);
for i = 1:2

    bin_str_t = bin_str(:,i);
    % преобразования строки в hex
    hex_str = dec2hex(bin2dec(bin_str_t'));
    hex_str_t(1,i) = hex_str;

end

fprintf(' %s\n', hex_str);
fprintf('\n');
fprintf(' %s\n', hex_str_t);
fprintf('\n');

Дело в том, что бинарная строка должна быть не более 52 бит.

Поэтому приходится разбивать ее на 2.

Не получается в цикле записать результат преобразования hex_str в матрицу hex_str_t

Подскажите пожалуйста где ошибка.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имеется длинная bin строка. Нужно ее преобразовать в hex формат

% Тест преобразования бинарной строки в hex 
bin_str = '0101101111010101010010101001011001011011110101010100101010010110';
bin_str = reshape(bin_str, [], 2);
hex_str_t = zeros(1,2);
for i = 1:2

    bin_str_t = bin_str(:,i);
    % преобразования строки в hex
    hex_str = dec2hex(bin2dec(bin_str_t'));
    hex_str_t(1,i) = hex_str;

end

fprintf(' %s\n', hex_str);
fprintf('\n');
fprintf(' %s\n', hex_str_t);
fprintf('\n');

Дело в том, что бинарная строка должна быть не более 52 бит.

Поэтому приходится разбивать ее на 2.

Не получается в цикле записать результат преобразования hex_str в матрицу hex_str_t

Подскажите пожалуйста где ошибка.

 

можно так

 

hex_str_t = [];

for i = 1:2

bin_str_t = bin_str(:,i);

% преобразования строки в hex

hex_str = dec2hex(bin2dec(bin_str_t'));

hex_str_t = [hex_str_t hex_str];

end

 

 

а еще лучше

 

hex_str = strjoin(cellstr(dec2hex(bin2dec(bin_str'))), '');

 

или

 

bin_str = '0101101111010101010010101001011001011011110101010100101010010110';

hex_str = reshape(dec2hex(bin2dec(reshape(bin_str, [], 2)'))', 1, []);

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Помогло.

Хорошо и правильно работает

hex_str = reshape(dec2hex(bin2dec(reshape(bin_str, [], 2)'))', 1, []);

Можно-ли эту строку hex записать в файл в формате INTEL HEX? https://ru.wikipedia.org/wiki/Intel_HEX

 

Изменено пользователем Acvarif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...