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

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

Войти
Регистрация
Восстановить пароль
 
Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
#1

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

04.04.2014, 11:34. Просмотров 441. Ответов 3
Метки нет (Все метки)

Дано целое число A и целое число k.

Выведите число, которое получается из числа A установкой значения k-го бита равному 1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2014, 11:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Установка бита (C++):

Установка единичного бита в переменной string - C++
Добрый вечер. Возник такой вопрос: есть строка, нужно поменять в ней несколько определенных бит. Подскажите, как это сделать? ...

Установка бита с использованием побитовых операций - C++
Есть следующая программа, которой задается само число/символ (unsigned char), переводит программа в двоичный вид, и бит, который был задан...

Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа - C++
Дано число. Создать 2 переменные, одна из которых хранит 2 старших бита исходного числа, другая 2 младших бита этого числа. код частично...

Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с первого бита - C++
Ввести целое A. Извлечь 3 бита числа A, начиная со второго и вставить их в число B, начиная с ервогоп бита. B=1A05h.

Обработка бита - C++
Название Размерность Тип N 16 вход M 4 вх P ...

Обработка бита - C++
На входе даны два 8-х разарядных числа IN_0, IN_1. Если на пятом месте в IN_0 стоит 0, то поменять знак числа IN_1,(и вывести...

3
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;
1
Kolbusdkiy
0 / 0 / 0
Регистрация: 14.10.2013
Сообщений: 112
09.04.2014, 10:41  [ТС] #3
Объясните пожалуйста кто-нибудь это на словах, а то не могу понять.
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
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
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2014, 10:56
Привет! Вот еще темы с ответами:

Проверка бита - C++
Всем привет. Хотел спросить знающих людей, как можно проверить бит в байте. То есть, допустим, есть unsigned char &quot;01010101&quot;. Какими...

Копирование бита - C++
Надо упростить и оптимизировать строку *p=((*p&amp;0x80)&gt;&gt;8)|(*p&amp;0x80);. Задача - скопировать (не переместить) старший бит байта в младший бит...

Замена бита единицей - C++
Как реализовать данное условие? Ввести последовательность из 8 целых чисел. В каждом втором числе заменить ( i-1)-й бит единицей, где...

Замена бита единицей - C++
Здравствуйте, помогите пожалуйста решить задачку. Нужно: ввести последовательность из 8 целых чисел. В каждом втором числе заменить (...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
09.04.2014, 10:56
Ответ Создать тему
Опции темы

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