2012-03-04 3 views

ответ

1

Необходимо bin2dec и bitget.

+0

Я стараюсь, чтобы один, но тот же результат .. –

+0

@MaanMuafakAltohafe: Ваш вопрос совершенно неясен. Пожалуйста, улучшите свой вопрос, и, возможно, я смогу дать лучший ответ. –

+0

спасибо, У меня есть массив типа int64, и я установил второй бит определенного местоположения (индекса) в этом массиве, когда я попытался вернуть второй бит, у меня нет того же результата бит 2 что я установил .. еще раз спасибо –

0

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

Updating ответ на обновленный вопрос: снова, вам все равно нужно использовать команду 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] и иметь свой номер, я надеюсь, что это поможет.

+1

Извините, код был неправильным, я исправлю его –

+0

ok, а когда aa десятичный Число не двоичное .. когда я конвертирую его из десятичного в двоичный, используя (dec2bin), ошибка, которая показывает: «не может использовать bitget с типом char ", поэтому я использовал b = a (:) '-' 0 '; для преобразования char в double, у меня есть еще одна ошибка: «В задании A (I) = B число элементов в B и Я должен быть таким же. Ошибка в ==> rrrrrrrrr at 204 T_Retrive (k) = bitget (b, 2); " –

+0

ahh Я понимаю, хорошо дайте мне 10 минут –