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

Битовые операции. - C++

Восстановить пароль Регистрация
 
Exoo
24 / 21 / 1
Регистрация: 26.11.2011
Сообщений: 92
20.05.2012, 22:48     Битовые операции. #1
подскажите пожалуйста
как сделать обратное преобразование после выполнения такого кода
C++
1
2
st=1;
st = (st >> 16) & 0x7fff;
как теперь получить st =1
C++
1
st = (st << 16) ????????;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2012, 22:48     Битовые операции.
Посмотрите здесь:

Битовые операции C++
битовые операции C++
Битовые операции C++
Битовые операции C++
Битовые операции, битовые поля. C++
Битовые операции C++
Битовые операции и операции смещения языка С C++
Битовые операции C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
necheyhin_a_v
3 / 3 / 1
Регистрация: 18.12.2012
Сообщений: 60
19.12.2012, 18:29     Битовые операции. #2
Цитата Сообщение от Exoo Посмотреть сообщение
подскажите пожалуйста
как сделать обратное преобразование после выполнения такого кода
C++
1
2
st=1;
st = (st >> 16) & 0x7fff;
как теперь получить st =1
C++
1
st = (st << 16) ????????;
Если вы используете побитовый сдвиг вправо на 16 разрядов это у вас в st хранится 0! И когда вы применяете операцию побитового & в st у вас по прежнему 0
Как вариант, можно к st прибавить единицу
Или можно сделать так:
st |= 1;
У вас младший бит установится в единицу, собственно единица и получится в любой системе счисления
И вообще после того, как у вас обнулилась st я смысла не вижу применять операцию &
Exoo
24 / 21 / 1
Регистрация: 26.11.2011
Сообщений: 92
23.12.2012, 18:43  [ТС]     Битовые операции. #3
Цитата Сообщение от necheyhin_a_v Посмотреть сообщение
Если вы используете побитовый сдвиг вправо на 16 разрядов это у вас в st хранится 0! И когда вы применяете операцию побитового & в st у вас по прежнему 0
Как вариант, можно к st прибавить единицу
Или можно сделать так:
st |= 1;
У вас младший бит установится в единицу, собственно единица и получится в любой системе счисления
И вообще после того, как у вас обнулилась st я смысла не вижу применять операцию &
суть вопроса была не в этом, а в общее как получить обратное значение
C++
1
2
st=115889; //11100010010110001
st = (st >> 16) & 0x7fff;
Yandex
Объявления
23.12.2012, 18:43     Битовые операции.
Ответ Создать тему
Опции темы

Текущее время: 22:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru