Hex 01A9 to 16-binary?
1 次查看(过去 30 天)
显示 更早的评论
I am trying to convert this input 01A9 into binary
4bit Hex input
01A9
16bit Binary Output
0000 0001 1010 1001
**no spaces
0 个评论
采纳的回答
Walter Roberson
2020-12-16
H = '01A9';
dec2bin(sscanf(H, '%4x'),16)
Note that the result will be character.
H can have more than 4 characters, and will be interpreted 4 characters at a time from the beginning . So if H is not an exact multiple of 4 characters, this particular algorithm will not implicitly pad from the begining with 0's -- only the last group will be 0 padded.
dec2bin(sscanf('01A9876', '%4x'),16)
This was interpretered as 01A9 (0)876.
If you needed to be padded with leading 0s implicitly then that could certainly be programmed.
0 个评论
更多回答(2 个)
James Tursa
2020-12-16
编辑:James Tursa
2020-12-16
E.g., if H is not too big:
H = '01A9';
B = dec2bin(hex2dec(H),numel(H)*4)
Otherwise you will need some form of a loop (explicit or hidden in a function call). E.g.,
C = arrayfun(@(h)dec2bin(hex2dec(h),4),H,'uni',false);
B = [C{:}]
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!