binary to ascii converting
显示 更早的评论
Hi, how can I convert a 96 bit binary string to the 8-bit ascii? I should find a sentence
采纳的回答
Star Strider
2020-1-1
编辑:Star Strider
2020-1-1
Try this:
binstr = char(randi([0 1]+'0', 1, 96)); % Create (Random) Binary Character Vector
binstr8 = reshape(binstr, [], 8); % Reshape To (12x8) Character Array
binmtx = bin2dec(binstr8); % Convert Binary Character Array To Decimal Column Vector
chrmtx = char(binmtx); % Convert Decimal Column Vector To Character Column Vector
You can combine these into one line if you want to. I kept them separate to demonstrate how the code works.
EDIT — (1 Jan 2020 at 18:13)
chrmtx = @(x) char(bin2dec(reshape(x(:).',[],8))); % One-Line Anonymous Function Version Of This Code
Out = chrmtx(binstr);
10 个评论
thank you for helping ,
this is my answer for a question and I should change this to the ascii 8bit text
result = "010010010111001101101110001001110111010000100000011100000111001001101111011000100110000101100010011010010110110001101001011101000111100100100000011001110111001001100101011000010111010000111111"
I couldnt find answer with your code
binstr = '010010010111001101101110001001110111010000100000011100000111001001101111011000100110000101100010011010010110110001101001011101000111100100100000011001110111001001100101011000010111010000111111'
% binstr = char(randi([0 1]+'0', 1, 96)); % Create (Random) Binary Character Vector
binstr8 = reshape(binstr, [], 8) % Reshape To (12x8) Character Array
binmtx = bin2dec(binstr8) % Convert Binary Character Array To Decimal Column Vector
chrmtx = char(binmtx) % Convert Decimal Column Vector To Character Column Vector
Worked for me. What did you do differently?
One change to ‘binstr8’:
binstr8 = reshape(binstr(:), 8, []).'; % Reshape To (12x8) Character Array
and one change to ‘Out’:
Out = char(binmtx).' % Convert Decimal Column Vector To Character Column Vector
produces:
Out =
'Isn't probability great?'
Similar changes to the ‘chrmtx’ function:
chrmtx = @(x) char(bin2dec(reshape(x(:),8,[]).')).';
Out = chrmtx(binstr)
produces the same output.
Error using reshape
Product of known dimensions, 8, not divisible into total number of elements, 1.
and binstr8 gives me 24x8 matrix
Is your x a character vector, or is it a string() object? When you display it, does it show up surrounded by ' quotes such as 'abc' or does it show up surrounded by " quotes like "abc" ?
@homa maleki —
Change ‘binstr8’ to:
binstr8 = reshape(char(binstr(:)), 8, []).'; % Reshape To (12x8) Character Array
and:
chrmtx = @(x) char(bin2dec(reshape(char(x(:)),8,[]).')).'; % One-Line Anonymous Function Version Of This Code
This illustrates the problem of not having your data to work with at the outset.
its by "quotes
Thank you so much it is working now
My pleasure.
If my Answer helped you solve your problem, please Accept it!
更多回答(0 个)
类别
在 帮助中心 和 File Exchange 中查找有关 Characters and Strings 的更多信息
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
