21 / 13 / 7
Регистрация: 17.10.2015
Сообщений: 126
|
||||||||||||||||
1 | ||||||||||||||||
Установка и сброс битов20.04.2016, 19:54. Показов 18926. Ответов 2
Метки нет (Все метки)
Здравствуйте.
Мне совершенно не ясно, как устанавливать/сбрасывать бит по его номеру(Читал об этом и в книге и в интернете. Скорее всего, я совсем тупой). Объясните, пожалуйста, почему(как) работают эти записи:
1
|
20.04.2016, 19:54 | |
Ответы с готовыми решениями:
2
Сброс битов Установка битов Из двух целых чисел А и B собрать одно, состоящее из четных битов A и нечетных битов B... Перевод таблицы битов и времени в последовательность битов arduino |
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
|
|
20.04.2016, 20:07 | 2 |
Берется число 1 (у которого установлен бит номер 1). Сдвигается на i позиций влево (бит, что был установлен оказывается установлен левее, куда его сдвинули), и оператором |= (логическое ИЛИ) назначается переменной.
Например: число 10101 в бинарном виде. Пусть i=3. Сдвиг дает 01000. Далее 10101+01000=11101. Сдвинутый бит "вливается" в число, подменяя собой нулик в такой же как и он позиции. Значит Тут обратное: Сдвигается единица на нужною позицию (01000), инвертируется вся конструкция (10111), дабы создать с помошью нуля "пустое место", которое логическим И (&=) вытеснит в эту "пустоту" бит из исходного числа: 11101 & 10111 = 10101. Все единицы останутся на своих местах, ибо их некуда вытеснять, а вот та единица, на позиции которой в сдвинутом числе окажется ноль - выпадет из исходного числа. Надеюсь не витеевато описала
3
|
21 / 13 / 7
Регистрация: 17.10.2015
Сообщений: 126
|
|
20.04.2016, 20:11 [ТС] | 3 |
Hikari, Спасибо большое
0
|
20.04.2016, 20:11 | |
20.04.2016, 20:11 | |
Помогаю со студенческими работами здесь
3
Установка и сброс битов Установка конкретных битов в байте Установка отдельных битов в РВВ Установка нескольких битов в булевом массиве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |