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

Установка бита - C++

Восстановить пароль Регистрация
 
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
04.04.2014, 11:34     Установка бита #1
Дано целое число A и целое число k.

Выведите число, которое получается из числа A установкой значения k-го бита равному 1.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Wlk
49 / 49 / 13
Регистрация: 07.12.2011
Сообщений: 133
04.04.2014, 11:42     Установка бита #2
C++
1
2
3
4
    int A = 5;
    int k = 1;
 
    cout << (A | (1 << k)) << endl;
Kolbusdkiy
 Аватар для Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
09.04.2014, 10:41  [ТС]     Установка бита #3
Объясните пожалуйста кто-нибудь это на словах, а то не могу понять.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.04.2014, 10:56     Установка бита #4
Kolbusdkiy, сдвигаем единицу на k разрядов влево:
C++
1
1<<k
Т.е. получаем в двоичном представлении нечто такое: 0010 (для k=1).
Далее выполняем операцию "побитовое или" | над числом А (в двоичном представлении 0101):
C++
1
A | (1<<k)
Получаем результат 0111, т.е. 7 в десятичном виде.
P.S. т.к. << имеет больший приоритет чем |, то скобки можно опустить:
C++
1
A | 1 << k
Yandex
Объявления
09.04.2014, 10:56     Установка бита
Ответ Создать тему
Опции темы

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