Jump to content

Логический флаг

, Логический флаг бит истины или флаг истины в информатике — это логическое значение, представленное в виде одного или нескольких битов, которое кодирует переменную состояния с двумя возможными значениями.

Использование памяти

[ редактировать ]

Один байт может содержать до 8 отдельных логических флагов путем сопоставления одного логического флага каждому биту, что делает этот метод очень экономичным и плотным хранением данных. Это известно как упакованное представление или побитовая упаковка, а противоположное кодирование, в котором используется только один логический флаг на каждый байт, известно как разреженное представление. Для памяти с побайтовой адресацией упакованное представление требует битовой маски и битового сдвига для доступа к отдельным флагам в каждом байте, что может потребовать дополнительных инструкций, тогда как разреженное представление не требует битовой маскировки. Упакованные представления чаще встречаются в регистрах оборудования и процессора в виде битовых полей. [1] тогда как разреженные представления чаще встречаются в программном обеспечении как переменные шириной в один или несколько байтов, хотя также могут поддерживаться упакованные представления. [2]

Эффективность

[ редактировать ]

Большинство компьютерных языков поддерживают настройку и тестирование одного или нескольких битов в комбинации для использования в качестве индикаторов истинности, и обычно можно проверить до 256 различных комбинаций условий с помощью всего лишь одной инструкции для одного байта с использованием побитовых операций . Достижения в области проектирования процессоров и параллельных вычислений означают, что еще больше операций булевой алгебры над логическими флагами можно выполнить с помощью всего лишь одной инструкции с использованием технологии SIMD , часто реализуемой в языках программирования как встроенные функции компилятора . [3]

Использование

[ редактировать ]

Иногда программы пишутся так, чтобы просто устанавливать флаги при обнаружении определенных условий, а не иметь несколько вложенных условных операторов (например, ifs), это может оказаться довольно сложным. Когда все условия проверены и все флаги установлены или выключены соответствующим образом, тестирование может начаться с различных комбинаций условий - со ссылкой на флаги, а не на сами переменные. Это может значительно упростить обработку и позволяет таблицы решений реализовать путем сопоставления их двоичных представлений в памяти.

См. также

[ редактировать ]
  1. ^ «Общие функции упаковки и распаковки битовых полей» . Документация ядра Linux . Проверено 10 апреля 2021 г.
  2. ^ "стд::вектор" . cppreference.com . 09.03.2021 . Проверено 10 апреля 2021 г.
  3. ^ «Руководство по внутренним компонентам Intel» . Зона разработчиков Intel . Проверено 10 апреля 2021 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f4f2afd776558465bde97de32c616dcb__1618047840
URL1:https://arc.ask3.ru/arc/aa/f4/cb/f4f2afd776558465bde97de32c616dcb.html
Заголовок, (Title) документа по адресу, URL1:
Boolean flag - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)