Мне нужно получить бит 2 в Matlab - PullRequest
0 голосов
/ 04 марта 2012

Я не могу получить бит 2 в MatLab, например:

enter code here
% c is an array to save the get bit result
a is decimal = 253
convert it to binary
a=11111101
k=1;
c(k)=bitget(a,2);
c=0;

Мне нужно c (1) = 0;

Ответы [ 2 ]

1 голос
/ 04 марта 2012

Вам нужно bin2dec и bitget.

0 голосов
/ 04 марта 2012

Код, который вам нужно использовать: bitget(a,2), а не getbit, и его младший порядок, поэтому он смотрит справа, то есть бит номер 2 вернет 0

Обновление ответа на обновленный вопрос: снова, вам все еще нужно использовать команду bitget, и он НЕ смотрит на биты слева, он смотрит на них справа.

Например, если ваши биты были a=11110000:

bitget(a,1) = 0
bitget(a,2) = 0
bitget(a,3) = 0
bitget(a,4) = 0
bitget(a,5) = 1
bitget(a,6) = 1
bitget(a,7) = 1
bitget(a,8) = 1

Надеюсь, это поможет

3-е обновление:

dec2bin всегда будет возвращать строковые значения, к сожалению, поэтому я проверил, выводят ли они значение в векторах, и для этого вы можете использовать de2bi, например, тогда 253 будет выглядеть как x = [1, 1, 1, 1, 1, 1, 0, 1], и если вы хотите получить доступ к определенному местоположению, вы можете просто набрать x[y] и получить свой номер, надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...