Довольно много вариантов там в зависимости от того, как вы хотите, чтобы ваш окончательный результат:
bin2b = '11' ;
bin4b1 = '1010' ;
bin4b2 = '1100' ;
b10str = strcat(bin2b,bin4b1,bin4b2) %// 10 bit value as a string type
b10str = [bin2b bin4b1 bin4b2] %// 10 bit value as a string type (same than above, shorthand notation for concatenation)
b10dec = bin2dec(b10str) %// 10 bit value as a numeric type (decimal base)
b10hex = dec2hex(bin2dec(b10str)) %// string type again (hexadecimal base)
b10bitarray = de2bi(b10dec) %// array of 10 boolean (each represent one bit)
Это даст вам:
b10str =
1110101100
b10dec =
940
b10hex =
3AC
b10bitarray =
0 0 1 1 0 1 0 1 1 1
Примечание: На большинстве ПК, бинарное упорядочивание " нижний конец ". В зависимости от байтов, вы можете «перевернуть» ваш битовый массив перед преобразованием его, что может быть сделано с fliplr
:
>> fliplr(b10str)
ans =
0011010111
, а затем преобразовать, как указано выше
Спасибо за решение. – Manojkumar
Для переупорядочения бит мы можем использовать de2bi (b10dec, 'left-msb') – Manojkumar
@Manojkumar. Это совершенно правильно. Однако он работает только с этой конкретной функцией/форматом. Это нормально, если это то, что вы используете. Опция 'fliplr' является более общей, поскольку она может работать с любым типом массива (логическим, числовым, символом и т. Д.). – Hoki