Команда для заполнения нулей в определенных местах в двоичных числах?
Мне нужно дополнить нулями определенные места в двоичных числах. Зацикливание формы массива двоичного числа, такого какdec2bin(43)
и добавление нулей и регулировка размера звучит переизобретением колеса.
Как эффективно заполнить нули двоичными числами в Matlab?
перекручивание
positions=[1,3,6];
x=de2bi(43);
xx=flip(x);
kk=1;
for ii=1:length(x)+length(positions)
if isequal(positions(kk),xx(ii))
%Transfer the tail from ii by one index ahead,
%left out here because I think my method is bad!
x(ii)=0;
positions=positions+1; %Increase positions by one now due to one padding
kk=kk+1;
end
end
который слишком переосмысливает: в основном, как получить 0 прямо перед Y, как от xxxxYabcd до xxxx0Yabcd, где xxxxYabcd - двоичное число?
пример
вход
101011, (1,3,6)
Выход
100100110
1x010x11x (показывает расположение нулей, более четких с x, где вставлены нули)