Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.85
cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
#1

Побитовый сдвиг - C++

22.04.2012, 15:10. Просмотров 1712. Ответов 3
Метки нет (Все метки)

Выполнение данного кода приравнивает asd к нулю. Хотя должно к единице, судя по моим вычислениям.

C++
1
char asd = 10 & 2 >> 1;
1010
&0010
-------
0010
и потом сдвинуть 0010 вправо на 1 даст 0001. В чем просчет? Есть какие-то приоритеты?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2012, 15:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Побитовый сдвиг (C++):

Побитовый сдвиг - C++
#include <iostream> using namespace std; int main(int argc, char** argv) { int a,b,c,i; cin >>a; cin >>c; cin >>b; do...

Побитовый сдвиг - C++
Столкнулся с проблемой. У меня есть ключ - 0x1A305B98 Из него я получаю параметр путем int parm = (0x1A305B98 >> 20) & 0x1F;// = 3 ...

Побитовый сдвиг - C++
есть допустим переменная unsigned char data = 0b10111011; Как можно сделать за 4 шага по битовый сдвиг на двух половинах как...

Побитовый сдвиг - C++
Добрый день, помогите пожалуйста с побитовым сдвигом вправо, не получается добиться верной работы, укажите на ошибку пожалуйста, спасибо! ...

Побитовый сдвиг - C++
Непонятна часть программы с 24 по 45 строку. Помогите разобраться, пожалуйста. #include <iostream> using namespace std; const int...

Побитовый сдвиг массива - C++
Есть двумерный массив int massiv;Нужно сдвинуть первый элемент массива в конец, а все остальные соответственно вперед. В цикле это...

3
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
22.04.2012, 15:12 #2
Первой выполняется операция сдвига, потом только &.
0
Kuzia domovenok
2117 / 1946 / 190
Регистрация: 25.03.2012
Сообщений: 6,750
Записей в блоге: 1
22.04.2012, 15:14 #3
сдвиг без скобок приоритетнее битового "И"
C++
1
char asd = (10 & 2)>> 1;
0
cetrael
60 / 5 / 3
Регистрация: 01.10.2011
Сообщений: 93
22.04.2012, 15:24  [ТС] #4
Спасибо, тогда ещё вопрос, в чем разница:
C++
1
char zxc = ((*(reinterpret_cast<const char*>(&(todo == 0 ? length : (todo == 3 ? md: sec))) + cur_length_byte) & (1 << pos)) >> pos);
result = 0
C++
1
    char qwe = (((todo == 0 ? length : (todo  == 3 ? md: sec)) + cur_length_byte) & (1 << pos)) >> pos;
result = 1
При todo = 0, pos = 1, length = 9, cur_length_byte = 1
0
22.04.2012, 15:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2012, 15:24
Привет! Вот еще темы с ответами:

Как происходит побитовый сдвиг? - C++
for(int i = 0; i &lt; 10; i ++){ if (i &amp; (1 &lt;&lt; j)) cout &lt;&lt; i &lt;&lt; endl; }

Побитовый сдвиг влево и вправо - C++
Что выполнится быстрее - сдвиг влево или сдвиг вправо? И как замерить время выполнения каждой из операций в коде? Добавлено через 2...

Как реализовать правильный побитовый сдвиг? - C++
Всем привет! У меня тупик в неожиданном месте) Я имею пару чаров и должен из них собрать int: char a1 = 224; char a2 = 18; ...

Не могу понять, как работает побитовый сдвиг - C++
Есть вот такой код: int invar, wv1, wv2, et, yt, resv; invar = 14; wv1 = invar &gt;&gt; 4; printf(&quot;%i\n&quot;, wv1); wv1 = wv1 &lt;&lt; 28; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.