![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Fazil6 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 35 Всего: 60 |
|
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
Как правильно сказал dumb, все дело в волшебных пузырьках - степенях двойки ![]() Посмотрим, как записываются числа - степени двойки в двоичной системе: 2^x | x(dec) | x(bin) | ------------------------------- 2^0 | 1 |1 | 2^1 | 2 |10 | 2^2 | 4 |100 | 2^3 | 8 |1000 | 2^4 | 16 |10000 | ... вообщем видна закономерность? ![]() те с помощью числа 2^0 можно манипулировать младшим битом в числе (обычно - самый правый бит), 2^1 - вторым справа и так далее с помощью логических операций. Для установки бита пользуемся оператором | Смотрим таблицу: еще надо было добавить строку: 0 | 1 = 1 берем любое число A, и применяем к нему операцию: A |= 1; в итоге все биты числа A останутся без изменений, кроме правого, который установится в 1, независимо от того, был установлен в нем бит или нет ранее. Почему так - понятно по таблице выше. Для сброса бита используем оператор & Таблица: 1 & 1 = 1 1 & 0 = 0 0 & 1 = 0 0 & 0 = 0 применяем операцию: A &= 1111..10; - колличество разрядов соответствующее числу A, или другими словами: A &= ~1; или A ^= 1; Для проверки бита: (A & 1) != 0; Примерчик:
Это сообщение отредактировал(а) zkv - 1.10.2007, 18:46 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |