Битовые флаги

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Битовые флаги

Сообщение Viper » 30.10.2006 (Пн) 14:40

Туплю. Четвертая неделя без нормальных выходных пошла... :(

Суть вопроса. Имеется переменная (допустим Flags), содержащая битовые флаги. При некоторых условиях некоторые биты не должны быть установлены. Пусть эти биты сидят в константе UnUsedBits. Понятно, что если эти биты заведомо установлены, то

Код: Выделить всё
Flags = Flags Xor UnUsedBits


эти биты сделает неустановленными. А если один или все из этих битов неустановлены изначально, то вышеуказанная строка их установит... Чего нам как раз не надо. Проблему решает конструкция вида:

Код: Выделить всё
Flags = (Flags Or UnUsedBits) Xor UnUsedBits


Собственно вопрос. Это единственный способ или есть решение попроще?
Весь мир матрица, а мы в нем потоки байтов!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 30.10.2006 (Пн) 14:51

and not.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 30.10.2006 (Пн) 15:05

И действительно... все рядом и просто... Зур Рахмат!
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 21

    TopList