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

кто может обьяснить про что тут говорится - C++

Восстановить пароль Регистрация
 
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
17.04.2011, 04:47     кто может обьяснить про что тут говорится #1
С помощью этого оператора & можно также выделять и устанавливать значения от-
дельных битов.
Представьте себе, что в написанной вами базе данных для сохранения некоторой
информации о личности используется единственный бит. Первый значимый бит ра-
вен 1. если это особа мужского пола, второй бит равен 1, если это программист, тре-
тий равен 1 в случае внешней привлекательности, а четвертый — если человек имеет
собаку. Взгляните на табл. 4.4.
Таблица 4.4. Значения битов
Бит ЗНАЧЕНИЕ
0 1 -^ мужчина
1 1 -> программист
2 1 -»привлекательный
3 1 -»владелец собаки
Не особо привлекательный, имеющий собаку программист мужского рода будет
закодирован числом Н01г. Если вы хотите просмотреть все записи в поисках хоро-
шенькой девушки без собаки, причем неважно, разбирается ли она в C++, надо ис-
пользовать следующее сравнение (числа приведены в двоичной записи!):
(databaseValue & 1011) == 0010
^ - не мужчина
^ - привлекательна
^ - без собаки
^^^ - важно
* - не интересует
В этом случае число 1011 является маской, потому что оно маскирует, исключая
из рассмотрения, биты с не интересующими вас характеристиками.



и вот что тут, раз 10 читал не пойму, тут про оператор & то что подчеркнуто не пойму что там про чё это из книги С++ для чайников,
в начале говорилось

Зачем придуманы эти глупые операторы
Предназначение большинства операторов очевидно. В необходимости операторов
- или + сомневаться не приходится. Не нужно рассказывать, для чего используется
оператор | |. Но для начинающих программистов может быть далеко не очевидно, за-
чем использовать битовые операторы.
Оператор & часто используется для маскирования информации. Например, пред-
положим, что нам нужно выделить последний значимый шестнадцатеричный разряд
из четырехразрядного числа:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
17.04.2011, 05:08     кто может обьяснить про что тут говорится #2
ELDQS, как ты собираешь определять установлен ли какой-либо бит числа без & ? Это не такая уж и редкая задача.
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
17.04.2011, 05:13  [ТС]     кто может обьяснить про что тут говорится #3
Цитата Сообщение от outoftime Посмотреть сообщение
ELDQS, как ты собираешь определять установлен ли какой-либо бит числа без & ? Это не такая уж и редкая задача.
тут обяснить можеш как то по друшому я ну никак не пойму
плиз

Добавлено через 1 минуту
Цитата Сообщение от outoftime Посмотреть сообщение
как ты собираешь определять установлен ли какой-либо бит числа без &
незнаю а как
ValeryS
Модератор
6376 / 4842 / 442
Регистрация: 14.02.2011
Сообщений: 16,047
17.04.2011, 07:13     кто может обьяснить про что тут говорится #4
операторы & "и"
| "или"
^ "исключающие или"
~ "инверсия"
предназначены для изменения битов в числе
Цитата Сообщение от ELDQS Посмотреть сообщение
Сообщение от outoftime
как ты собираешь определять установлен ли какой-либо бит числа без &
незнаю а как
например так надо проверить установлен ли 2 бит в числе
unsigned char mc =0xFD == 1111 1101 это маска
unsigned char val =0xHH == hhhh hhhh это число (h-равен 0 или 1)

unsigned char tmp = mc |val; может быть 1111 1101 или 1111 1111 зависит установлен ли бит в числе

можно так
unsigned char mc =0x00 == 0000 0010 это маска
unsigned char val =0xHH == hhhh hhhh это число (h-равен 0 или 1)

unsigned char tmp = mc &val; может быть 0000 0010 или 0000 0000 зависит установлен ли бит в числе
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
17.04.2011, 10:20  [ТС]     кто может обьяснить про что тут говорится #5
во так понятней теперь и тот текст тож понял
спасибо
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16827 / 5248 / 321
Регистрация: 30.03.2009
Сообщений: 14,129
Записей в блоге: 26
17.04.2011, 10:24     кто может обьяснить про что тут говорится #6
На всякий случай
http://www.cyberforum.ru/cpp-beginners/thread58455.html
Yandex
Объявления
17.04.2011, 10:24     кто может обьяснить про что тут говорится
Ответ Создать тему
Опции темы

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