Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Флаги |
Автор: Novojiloff 1.4.2007, 13:07 |
Можете растолковать смысл флагов? У меня в литературы про них смутно написано ![]() |
Автор: Xenon 1.4.2007, 13:08 |
Хотя бы чтобы учитьыва / не учитывать пробелы про работе с потоками, устанавливать выравнивание текста по левому, правому, центральному краю ... Расплывчитый вопрос. |
Автор: likehood 1.4.2007, 13:21 |
Флаг - это по сути логическая (булева) переменная, которая говорит о наличии/отсутсвии какого-либо признака. Если таких признаков много, можно хранить флаги в одной целочисленной переменной, тогда каждый двоичный разряд такой переменной будет соответствовать некоторому признаку. |
Автор: Novojiloff 1.4.2007, 16:25 |
![]() |
Автор: MAKCim 1.4.2007, 16:39 | ||
как пример - элементы таблиц страниц и каталогов страниц
|
Автор: Novojiloff 2.4.2007, 10:41 |
К сожалению я новичок. И вышеприведенный код для меня не понятен. Можно так скать просто на переменных a и b? |
Автор: JackYF 2.4.2007, 17:14 |
Хм... ну вот, допустим, у тебя для каждой структуры имеется много параметров типа "да/нет"(есть/нету). Если их много, то выделять для каждого параметра отдельную переменную нерационально. Тогда ты заводишь целую переменную, в которой каждый бит будет означать значение по конкретному параметру. Тем самым экономишь память. Для работы с флагами - установить/сбросить значение конкретного параметра используются битовые операции &, |, ^, ~. Есть еще и много других способов и представлений, но это одно из самых распространенных... Надеюсь, что объяснил более-менее понятно ![]() |
Автор: threef 2.4.2007, 21:40 |
можно 0000000 - "байт" флагов & 0000001 - установлен ли 0-й бит ? --------------- 0000000 - == 0не установлен проверили наличие установленного флага теперь другой байт : 0100100 - "байт" флагов & 0100000 - установлен ли 6-й бит ? --------------- 0100000 - !=0 , установлен таким образом можно упаковать в 1 байт 8 логических значений, в целое - 32 . Иногда это удобно. ( из экономии ) |
Автор: Novojiloff 3.4.2007, 05:47 |
Спасибо ![]() ![]() |