Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
1140 / 857 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
22.04.2012, 15:12     Побитовый сдвиг #2
Первой выполняется операция сдвига, потом только &.
Kuzia domovenok
1890 / 1745 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
22.04.2012, 15:14     Побитовый сдвиг #3
сдвиг без скобок приоритетнее битового "И"
C++
1
char asd = (10 & 2)>> 1;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2012, 15:24     Побитовый сдвиг
Еще ссылки по теме:

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

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

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

Реализовать функцию, которая осуществляет циклический побитовый сдвиг вправо на n позиций - C++
Реализовать функцию, которая осуществляет циклический побитовый сдвиг вправо на n позиций. При циклическом сдвиге вправо на 1 все биты...


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

Или воспользуйтесь поиском по форуму:
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
Yandex
Объявления
22.04.2012, 15:24     Побитовый сдвиг
Ответ Создать тему
Опции темы

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