Что такое логический флаг - PullRequest
5 голосов
/ 03 октября 2011

Я прохожу курс обучения Visual Basic 2010 и пытаюсь понять этот новый термин, называемый флагом.Я вроде понимаю, что это как-то связано с логическим условием.Я не совсем понимаю, что такое флаг.Я вижу ссылки на него, используя термин флаг.Я понимаю, что есть что-то делать, когда логическое, условие вызывает флаг.Но что это за флаг?Как вы это идентифицируете?Может кто-нибудь дать мне пример.

Ответы [ 3 ]

7 голосов
/ 03 октября 2011

В общем, «Флаг» - это просто еще один термин для условия «истина / ложь».

Может иметь более конкретные значения в более конкретных контекстах.Например, ЦП может хранить «арифметические флаги», каждый из которых указывает условие «истина / ложь» в результате предыдущей арифметической операции.Например, если предыдущая операция была «ADD», то флаги указывали бы, был ли результат добавления ноль, меньше нуля или больше нуля.

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

2 голосов
/ 03 октября 2011

Вы слышите это довольно часто, когда BOOL является «Флагом», поскольку есть только 2 результата: ИСТИНА или ЛОЖЬ.Использование BOOL в ваших процессах принятия решений - это простой способ «пометить» определенный результат, если условие выполнено.

Примером может быть:

if ($x == TRUE) {
 // DO THIS
{
else {
 //Flag not tripped, DO THIS
}
0 голосов
/ 03 октября 2011

Вы можете использовать это с побитовыми операциями .Он может быть использован для упаковки 32 логических значений в одно целое число.Вот пример:

Dim flags As Integer
Const ADMINISTRATOR = 1
Const USER = 2
Const BLUE = 4
Const RED = 8

flags = ADMINISTRATOR or BLUE

If flags and ADMINISTRATOR then
    ' Do something since the person is an admin
End If

Флаги добавления or s и проверка and s, установлен ли флаг.

Теперь мы можем проверить до 32 логических значений для этой переменной,Отлично подходит для хранения в базе данных.Вы можете использовать большие типы данных, например long, чтобы хранить больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...