Вот одна строка:
a = 255;
bits = [1,2];
bitand(a,bitcmp(sum(2.^(bits-1)),'uint32'))
Разобрать:
b = sum(2.^(bits-1))
вычисляет целое число с заданным набором битов. Обратите внимание, что bits
не должно содержать повторяющихся элементов. Используйте unique
для обеспечения этого: bits = unique(bits)
.
c = bitcmp(b,'uint32')
вычисляет 32-битное дополнение вышеупомянутого. ANDing с дополнением сбрасывает данные биты.
bitand(a,c)
вычисляет двоичное И для входного числа и целое число с выключенными заданными битами.
Установка битов проще:
a = 112;
bits = [1,2];
bitor(a,sum(2.^(bits-1)))