acvarif 0 24 марта, 2016 Опубликовано 24 марта, 2016 · Жалоба Имеется длинная 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 Подскажите пожалуйста где ошибка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Realking 0 25 марта, 2016 Опубликовано 25 марта, 2016 · Жалоба Имеется длинная 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, []); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
acvarif 0 25 марта, 2016 Опубликовано 25 марта, 2016 (изменено) · Жалоба Спасибо. Помогло. Хорошо и правильно работает hex_str = reshape(dec2hex(bin2dec(reshape(bin_str, [], 2)'))', 1, []); Можно-ли эту строку hex записать в файл в формате INTEL HEX? https://ru.wikipedia.org/wiki/Intel_HEX Изменено 25 марта, 2016 пользователем Acvarif Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться