Разное

Boolean что такое: Тип Boolean, логические операторы и операторы сравнения

Содержание

Pascal. Логический тип (BOOLEAN) — Pascal

В языке Паскаль имеются две логические константы: TRUE(истина) и FALSE(ложь). Логическая переменная может принять любое из этих значений и имеет тип boolean. Логические данные широко используются при проверке правильности некоторых условий и при сравнении величин. Результат может оказаться “истинным” или “ложным”. Над логическими данными допускаются следующие операции:

Булевские операции:






Оператор

Операция

Тип операндов

Тип результата

not

отрицание

Boolean

Boolean

and

логическое И

Boolean

Boolean

or

логическое ИЛИ

Boolean

Boolean

xor

логическое исключающее ИЛИ

Boolean

Boolean

Результаты операций над логическими данными сведены в таблицу:






A

B

NOT (A)

(A) OR (B)

(A) AND (B)

T

T

F

T

T

T

F

F

T

F

F

T

T

T

F

F

F

T

F

F

Из данных булевского типа, операций сравнения и булевских операций строятся логические выражения, имеющие значения типа boolean. Например: (c>10) or (d<3) имеет истинный результат при c=12 и d=2, а ложный при c=8 и d=5.

При вычислении значений булевских выражений необходимо учитывать порядок выполнения булевских операций. Наивысший приоритет имеет операция NOT, затем операция AND и затем операция OR. Операции сравнения имеют самый низкий приоритет.

Переменные булевского типа описываются в разделе описания перемененных с помощью стандартного идентификатора BOOLEAN.

Пример: a, l1, f: boolean;.

В языке Паскаль существуют функции, которые принимают тип boolean:

1. ODD(A) — значение истинно, когда А — не четное число.

2. EOLN — значение истинно, если конец строки текстового файла.

3. EOF — значение истинно, если конец текстового файла.

Пример программы:

program primer; var a,b,c:integer;
s:boolean;
begin
writeln(‘введите три целых числа’);
readln(a,b,c); s:=(a>b) and (c<43);
write(s);
end.

В результате выполнения программы переменной s присвоится значение TRUE или FALSE, в зависимости от того было ли логическое выражение ложным или истинным, и значение переменной s выведется на экран, т.е. на экране появится TRUE или FALSE.

Тип данных Boolean.

Тип BOOLEAN (булевский, логический). Логический тип в языке Паскаль задается как перечисляемый тип, содержащий всего два значения, которые имеют идентификаторы FALSE (ложь) и TRUE (истина).

Элементам этого типа поставлены в соответствие номера: 0 — значению FALSE и 1 — TRUE. Поэтому FALSE < TRUE. В памяти ЭВМ переменные этого типа занимают один байт. Над данными этого типа определены операции: дизъюнкция OR, конъюнкция AND, исключающее или XOR, отрицание NOT, а также отношения <, >, <=, >=, <>, =. Результаты выполнения логических операций над булевыми переменными P и Q приведены в таблице 5.

Следует отметить, что операции сравнения данных любых типов имеют результат типа BOOLEAN. Например, если даны переменные с именами Р, Q типа BOOLEAN и X, Y, Z типа REAL, причем X = 5.8, Y = 8, a Z = 10.3 , то справедливы утверждения:
Q := (X < Y) and (Y <= Z)     =>TRUE;
P:= X = Y     =>FALSE.
Наиболее часто булевский тип данных используется для управления порядком выполнения операторов в программе. Для прокладки качественной и надежной сети Вы можете использовать Mikrotik Cloud Core — топовый 12-ти портовый маршрутизатор операторского класса.
В языке имеется функция ODD(X), где X — целое число. Если X четно, то ODD(X) принимает значение FALSE, если X нечетно, то ODD(X) – TRUE.
Основные соотношения алгебры логики:

1. Р or Q = Q or Р.
    Р and Q = Q and Р.
2. (Р or Q) or R = Р or (Q or R).
    (Р and Q) and R = Р and (Q and R).
3. (Р and Q) or R = (Р or R) and (Q or R).
    (Р or Q) and R = (Р and R) or (Q and R).
4.  not (Р or Q) = not P and not Q.
     not (Р and Q) = not Р or not Q.

При решении практических задач могут возникнуть самые разнообразные условия, которые следует записать в виде логических выражений, использующих логические операции и отношения. В этом случае бывает полезно помнить о следующих булевых соотношениях и эквивалентных преобразованиях.
Эквивалентные преобразования:

X ? Y           not (X = Y)
X <= Y         not (X > Y) or (X = Y)
X >= Y         not (X < Y)
X > Y           not (X < Y) and (X = Y)


Предыдущая статья: Тип данных Real.
Оглавление: Лекции по Pascal.
Следующая статья: Тип данных Char.


boolean — боремся за Java память… / Хабр

У Вас когда-либо случались такие ситуации, когда Ваше Java приложение трещит по швам? В моём случае это случилось из-за нехватки доступной оперативной памяти. И, естественно, обнаружилась нехватка в самый неподходящий момент: на носу очередной долгожданный релиз, один из серверов остановлен для обновления кода и данных и реинкарнация старого кода уже невозможна, в ближайшие дни запланировано несколько совещаний и собеседований, что сильно отвлекает от процесса оптимизации — в общем, ЧП не прошло незамеченным.

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

Не буду описывать всех ухищрений, которые пришлось проделать, чтобы восстановить остановленный сервер в течении трёх дней, но одним своим мини открытием поделюсь — boolean — это не тот тип данных, который Вы хотите использовать в высоконагруженных системах. Внимание вопрос:


Как Вы думаете, сколько памяти занимает boolean например на Ubuntu server x64?

Правильным ответом будет: неизвестно и зависит только от реализации JVM.

Рассмотрим распространённую Sun JVM и прочтем в спецификации виртуальной машины, что boolean типа в ней нет как такового, вместо него используется int! А это означает, что для хранения значения типа «да\нет» используется ровно 32 бита, независимо от архитектуры процессора. Правда в том же разделе мы видим, что произведена оптимизация для работы с массивами boolean, которые преобразуются в массив байт, что даёт прирост доступной памяти в 4 раза. И всё же платить за хранение нолика или еденички семью лишними битами — иногда просто кощунство и издевательство над серверами (особенно при размерах массивов в 500 миллионов элементов).

Спасением в таких случаях будет класс BitSet, который ведёт себя подобно массиву boolean, но упаковывает данные так, что для одного бита выделяется всего один бит памяти (с небольшими издержками для всего массива). BitSet хранит внутри себя массив типа long, а при запросе или установке значения определенного бита — высчитывает индекс нужного long и пользуясь побитовыми операциями и операциями сдвига производит вычисления над единственным битом.

Существует еще более интересная реализация BitSet, OpenBitSet — Apache реализация, которая используется для Lucene. Она гораздо быстрее, но упускает некоторые проверки, проводимые в оригинальном BitSet. Что использовать — решать Вам.

В чем разница между типами bool и Boolean в C#

в чем разница между bool и Boolean типы В C#?

14 ответов


343

автор: Kent Boogaart


Я не верю, что он есть.

bool — Это просто псевдоним для System.Boolean


Они являются одним и тем же. bool — это просто псевдоним для Boolean.


18

автор: Zach Burlingame


Я понимаю, что это много лет спустя, но я наткнулся на эту страницу от Google с тем же вопросом.

есть одно незначительное различие на странице MSDN на данный момент.

VS2005

Примечание:

Если требуется логическая переменная, которая также может иметь значение null, используйте bool.
Дополнительные сведения см. В разделе Nullable Types (руководство по программированию на C#).

VS2010

Примечание:

Если вам требуется логическая переменная, которая также может иметь значение null, используйте bool?.
Дополнительные сведения см. В разделе Nullable Types (руководство по программированию на C#).


они одинаковы. Boolean помогает упростить преобразование между C# и VB.Net — … Большинство программистов на C# предпочитают «bool», но если вы находитесь в магазине, где есть много обоих VB.Net и C# тогда вы можете предпочесть Boolean, потому что он работает в обоих местах.

13

автор: Joel Coehoorn


один псевдоним для других.


Как уже было сказано, они такие же. Существует два, потому что bool-это ключевое слово C# и Boolean-класс .Net.


bool-это псевдоним для класса Boolean. Я использовать псевдоним при объявлении переменной и имя класса при вызове метода класса.

5

автор: James Boother


они одинаковы, Bool-это просто система.Булеан укоротился. Используйте Boolean, когда вы с VB.net программист, так как он работает как с C#, так и с VB

2

автор: Hand of C’thuhlu


отметим, что Boolean будет работать только у вас using System; (который обычно, но не обязательно, включен) (если вы не напишите его как System.Boolean). bool не нужны using System;

1

автор: James Curran


bool является примитивным типом, что означает, что значение (true/false в этом случае) хранится непосредственно в переменной. Boolean-это объект. Переменная типа Boolean хранит ссылку на объект Boolean. Единственная реальная разница-хранение. Объект всегда будет занимать больше памяти, чем примитивный тип, но на самом деле изменение всех ваших логических значений на bool не окажет заметного влияния на использование памяти.

Я ошибался, Вот как это работает в java с boolean и Boolean. В C# bool и Boolean являются ссылочными типами. Оба они хранят свое значение непосредственно в переменной, оба они не могут быть null, и оба они требуют метода «convertTO» для хранения своих значений в другом типе (например, int). Важно только, какой из них вы используете, если вам нужно вызвать статическую функцию, определенную в классе Boolean.


возможно, bool немного «легче», чем Boolean; интересно, изменив это:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public bool CanUseOnItems { get; set; }
    }
}

…для этого:

namespace DuckbillServerWebAPI.Models
{
    public class Expense
    {
        . . .
        public Boolean CanUseOnItems { get; set; }
    }
}

…заставил мой cs-файл прорасти «с помощью системы»; изменение типа обратно на» bool » вызвало седые волосы предложения using.

(Visual Studio 2010, проект WebAPI)

-1

автор: B. Clay Shannon


bool-это псевдоним для Boolean. Псевдонимы заменяют одну строку текста другой (например, search / replace-all в notepad++) непосредственно перед компиляцией кода. С помощью одного над другим не имеет никакого эффекта во время выполнения.

в большинстве других языков один будет примитивным типом, а другой-типом объекта (тип значения и ссылочный тип на жаргоне C#). C# не дает вам возможности выбирать между ними. Когда вы хотите вызвать статический метод, определенный в Boolean class, он автоматически магически обрабатывает Boolean как ссылочный тип. Если вы создаете новую булеву переменную, она автоматически обрабатывает ее как ссылочный тип (если вы не используете активатор.Метод CreateInstance).

-1

автор: Michael Kaldwid


boolean — с английского на русский

  • Boolean — (after George Boole), as a noun or an adjective, may refer to: * Boolean algebra (logic), a logical calculus of truth values or set membership * Boolean algebra (structure), a set with operations resembling logical ones * Boolean datatype, a… …   Wikipedia

  • Boolean — Boo‧le‧an [ˈbuːliən] adjective [only before a noun] COMPUTING relating to a type of logic in which something can be either true or false, but not both: • online systems which make use of Boolean logic • a Boolean search (= a search for… …   Financial and business terms

  • Boolean — [bo͞o′lē ən] adj. 〚after G. Boole (1815 64), Eng mathematician〛 designating or of any of a number of mathematical systems, esp. one (Boolean algebra) devised using algebraic rules and symbols for the analysis of symbolic logic, which is now… …   Universalium

  • Boolean — [bo͞o′lē ən] adj. [after G. Boole (1815 64), Eng mathematician] designating or of any of a number of mathematical systems, esp. one (Boolean algebra) devised using algebraic rules and symbols for the analysis of symbolic logic, which is now… …   English World dictionary

  • Boolean — in reference to abstract algebraic systems, 1851, named for George Boole (1815 1864), English mathematician. The surname is a variant of Bull …   Etymology dictionary

  • Boolean — ► ADJECTIVE ▪ denoting a system of notation used to represent logical propositions by means of the binary digits 0 (false) and 1 (true), especially in computing and electronics. ORIGIN named after the English mathematician George Boole (1815 64) …   English terms dictionary

  • Boolean — /ˈbuliən/ (say boohleeuhn) adjective 1. of or relating to Boolean algebra: Boolean logic. 2. expressed or executed by means of Boolean algebra: a Boolean equation. {See Boolean algebra} …   Australian English dictionary

  • Boolean — adjective Etymology: George Boole died 1864 English mathematician Date: 1851 of, relating to, or being a logical combinatorial system (as Boolean algebra) that represents symbolically relationships (as those implied by the logical operators AND,… …   New Collegiate Dictionary

  • Boolean —    Any variable that can have a logical value of true or false. Named after George Boole, the developer of a branch of algebra based on the values of true and false, Boolean works with logical rather than numeric relationships.    Boolean… …   Dictionary of networking

  • Boolean — Boolesche Variable, benannt nach George Boole, sind Elemente einer booleschen Algebra, die immer einen von zwei Werten annehmen. Dieses Wertepaar wird je nach Anwendung u. a. als „wahr/falsch“, „true/false“ oder „1/0“ bezeichnet. In elektrischen… …   Deutsch Wikipedia

  • Boolean — Bool|e|an [ buliən ] adjective COMPUTING a Boolean search is one using the words and, or, and not to find a word or combination of words using an Internet SEARCH ENGINE. For example you could ask to search for car or automobile, or New York and… …   Usage of the words and phrases in modern English

  • Boolean operator — это… Что такое Boolean operator?

  • Boolean operator — UK US noun [countable] [singular Boolean operator plural Boolean operators] computing a word such as ‘and’, ‘or’, or ‘not’ used in a Boolean search on the Internet Thesaurus …   Useful english dictionary

  • Boolean operator — UK / US noun [countable] Word forms Boolean operator : singular Boolean operator plural Boolean operators computing a word such as and , or , or not used in a Boolean search on the Internet …   English dictionary

  • Boolean operator — loginis operatorius statusas T sritis automatika atitikmenys: angl. Boolean operator; logical operator vok. Boolescher Operator, m; logischer Operator, m rus. булев оператор, m; логический оператор, m pranc. opérateur booléen, m; opérateur… …   Automatikos terminų žodynas

  • boolean operator — logical operator, mathematical operation between Boolean values …   English contemporary dictionary

  • Boolean operator — /ˌbuliən ˈɒpəreɪtə/ (say .boohleeuhn opuhraytuh) noun an operator (def. 4), as and , or , or not , used in computer programming and to phrase queries in database searches. See Boolean algebra …   Australian English dictionary

  • dyadic Boolean operator — dvivietis loginis operatorius statusas T sritis automatika atitikmenys: angl. dyadic Boolean operator vok. zweistelliger Boolescher Operator, m; zweistelliger logischer Operator, m rus. двухместный логический оператор, m pranc. opérateur booléen… …   Automatikos terminų žodynas

  • monadic Boolean operator — vienvietis loginis operatorius statusas T sritis automatika atitikmenys: angl. monadic Boolean operator vok. monadischer Boolescher Operator, m rus. одноместный логический оператор, m pranc. opérateur logique à une place, m; opérateur monadique… …   Automatikos terminų žodynas

  • Boolean operation — may refer to one of the following related meanings.*Boolean function *an operation in a Boolean algebra; in particular: **operations over the algebra of sets: union (set theory), intersection (set theory), etc. **Boolean operations on polygons… …   Wikipedia

  • Boolean algebras canonically defined — Boolean algebras have been formally defined variously as a kind of lattice and as a kind of ring. This article presents them more neutrally but equally formally as simply the models of the equational theory of two values, and observes the… …   Wikipedia

  • Boolean logic — is a complete system for logical operations. It was named after George Boole, who first defined an algebraic system of logic in the mid 19th century. Boolean logic has many applications in electronics, computer hardware and software, and is the… …   Wikipedia

  • Boolean algebra (introduction) — Boolean algebra, developed in 1854 by George Boole in his book An Investigation of the Laws of Thought , is a variant of ordinary algebra as taught in high school. Boolean algebra differs from ordinary algebra in three ways: in the values that… …   Wikipedia

  • В чем разница между переменными типа bool и boolean?

     
    demon ©
     
    (2008-11-29 18:27)
    [0]

    Sabj


     
    @!!ex ©
     
    (2008-11-29 18:37)
    [1]

    языки разные. вообще с некоторыми оговорками эти типы можно считать одинаковыми.


     
    tesseract ©
     
    (2008-11-29 18:40)
    [2]

    bool = longbool в delphi — являеться в сучности integer


     
    Тын-Дын ©
     
    (2008-11-29 18:42)
    [3]


    > В чем разница между переменными типа bool и boolean?

    Сравни SizeOf()


     
    Anatoly Podgoretsky ©
     
    (2008-11-29 18:49)
    [4]

    > demon  (29.11.2008 18:27:00)  [0]

    В справке описано, но кратко xBool не логический тип, а арифметический, используемый в недоязыках, как эквивалент логического. В Дельфи для поддержки АПИ введена ограниченая поддержка и его.


     
    Anatoly Podgoretsky ©
     
    (2008-11-29 18:51)
    [5]

    > Тын-Дын  (29.11.2008 18:42:03)  [3]

    Зачем, это же производный (generic) тип и его длина меняется.


     
    demon ©
     
    (2008-11-29 18:53)
    [6]

    > Сравни SizeOf()
    bool — 4
    boolean — 1
    теперь ясно, буду boolean использовать.


     
    isasa ©
     
    (2008-11-29 18:53)
    [7]

    Windows Data Types

    BOOL Boolean variable (should be TRUE or FALSE).
    This type is declared in WinDef.h as follows:

    typedef int BOOL;

    BOOLEAN Boolean variable (should be TRUE or FALSE).
    This type is declared in WinNT.h as follows:

    typedef BYTE BOOLEAN;


     
    DVM ©
     
    (2008-11-29 18:54)
    [8]


    > теперь ясно, буду boolean использовать.

    Почему? И где?


     
    @!!ex ©
     
    (2008-11-29 19:02)
    [9]

    ааа. речь о дельфевом bool. тогда да, 4 байта против 1.


     
    Anatoly Podgoretsky ©
     
    (2008-11-29 19:05)
    [10]

    > demon  (29.11.2008 18:53:06)  [6]

    Плохое сравнение.


     
    Anatoly Podgoretsky ©
     
    (2008-11-29 19:06)
    [11]

    > isasa  (29.11.2008 18:53:07)  [7]

    Ну так приходится расплачиваться за грехи предыдущих поколений


     
    demon ©
     
    (2008-11-29 19:08)
    [12]

    из [7] вытекает что программа исползующая boolean не будет работать в 9x системах, верно?


     
    @!!ex ©
     
    (2008-11-29 19:10)
    [13]

    > [12] demon ©   (29.11.08 19:08)

    Да нет, с чего бы?


     
    Anatoly Podgoretsky ©
     
    (2008-11-29 19:11)
    [14]

    > DVM  (29.11.2008 18:54:08)  [8]

    И еще вопрос

    Зачем и как?


     
    demon ©
     
    (2008-11-29 19:13)
    [15]


    > Да нет, с чего бы?

    > declared in WinNT.h


     
    benito
     
    (2008-11-29 19:16)
    [16]

    demon ©   (29.11.08 19:13) [15]

    http://www.ozon.ru/context/detail/id/2967330/


     
    Anatoly Podgoretsky ©
     
    (2008-11-29 19:16)
    [17]

    А если будет написано

    > declared in abc.h

    то это будет означать, что под Виндоус работать не будет, только под abcOS


     
    Григорьев Антон ©
     
    (2008-12-01 08:57)
    [18]

    В C и C++ нет отдельного логического типа, он получается из целых чисел, причём любое ненулевое значение считается истиной, нулевое — ложью. Из-за различной разрядности исторически появились «фундаментальные» ByteBool, WordBool и LongBool, устроенные по одному принципу, но отличающиеся разрядностью, и Bool — обобщённый тип, разрядность которого совпадает с разрядностью платформы, т.е. для Win32 Bool = LongBool.

    В Паскале есть встроенный логический тип Boolean, который занимает 1 байт и принимает значения True (1) и False (0), прочие значения компилятором не допускаются. Это тоже исторически сложилось.

    Так как API Windows в качестве логических типов использует типы C/C++, в Delphi для совместимости введена поддержка этих типов. Они могут использоваться там, где используется Boolean, и компилятор неявно выполняет необходимые преобразования.


     
    inoremap
     
    (2008-12-01 09:09)
    [19]

    [18]> В C нет отдельного логического типа

    fixed


     
    Anatoly Podgoretsky ©
     
    (2008-12-01 10:36)
    [20]

    > Григорьев Антон  (01.12.2008 8:57:18)  [18]

    Не только из чисел, практически все является логическим типом, например значения функций, сами функции, выражения, операции и так далее, одним словом все.


     
    Anatoly Podgoretsky ©
     
    (2008-12-01 10:36)
    [21]

    > inoremap  (01.12.2008 9:09:19)  [19]

    Не fixed, а Masked


     
    int64
     
    (2008-12-01 11:00)
    [22]

    У меня при приведении Bool к Boolean компилятор выдывал internal errror. Delphi7. Ругался на простую запись:
    if BoolValue then

    Когда я переписал на if BoolValue = True then, провалы прекратились.
    С тех пор у меня фобия по использованию Bool.

    Еще не понятно, как Д сравнивает эти типы между собой. Когда они не 0, они же всеравно могут не равнятся друг другу. Например: первый 1, второй  10. Это можно использовать, как «многозначную» логику.
    Но вдруг Д принудительно конвертит все «True» типа LongBool к 1, например, через неявные/невидимые приведения к Boolean.
    Проверить не было времени.


     
    KSergey ©
     
    (2008-12-01 12:49)
    [23]

    > int64   (01.12.08 11:00) [22]
    > Еще не понятно, как Д сравнивает эти типы между собой. Когда
    > они не 0, они же всеравно могут не равнятся друг другу.
    > Например: первый 1, второй  10. Это можно использовать,
    > как «многозначную» логику.

    Однозначно определена только константа FALSE, только с ней и надо сравнивать.


     
    Кто б сомневался ©
     
    (2008-12-01 17:32)
    [24]


    > С тех пор у меня фобия по использованию Bool.

    Вообще интересно почитать мнения программистов. 🙂
    Ведь и Bool и Boolean где то нужно одно, а где то другое.
    Иногда без Bool не обойтись, к примеру в структурах API.
    Иногда Bool удобнее использовать, т.к. 0 — это false, а >0 это true.


     
    blackman ©
     
    (2008-12-01 17:55)
    [25]

    Надо использовать только Bool и не заморачиваться. Иначе с API будут проблемы.


     
    Anatoly Podgoretsky ©
     
    (2008-12-01 20:08)
    [26]

    > Кто б сомневался  (01.12.2008 17:32:24)  [24]

    Касательно нуля так, а вот не 0 обысно не Истина, а какое то значение — адрес, хендл, количество и т.л.


     
    Anatoly Podgoretsky ©
     
    (2008-12-01 20:11)
    [27]

    > blackman  (01.12.2008 17:55:25)  [25]

    И с Bool тоже будут, точнее уже есть. Кто то кое где посчитал, что 1 это True, а тот откуда ни возмись появилось, не то что вы подумали, а FFFFFFFF и программы лопнули. Не единственный щелчок по носу. Некоторые проблемы описаны в справке. Гарантируется только 0 = False


     
    blackman ©
     
    (2008-12-01 20:55)
    [28]

    Anatoly Podgoretsky ©   (01.12.08 20:11) [27]
    Что значит кое кто и кое где? Огласите список фамилий! Накажем! 🙂

    Если по-большому, bool и Boolean это изврат. Используем integer и все понятно и просто. Единственное, что этому мешает — компилятор 🙂


     
    Anatoly Podgoretsky ©
     
    (2008-12-01 21:30)
    [29]

    Ну погоревалм, а потом дружно стали переделывать библиотеки и программы на x <> 0 then
    Наказывать то некого, сами себя наказали.
    А вот двойственная природа функций в С и в ОС меня огорчает. Представляешь как им там в Борланде с переводом. Когда функция описана, как возвращающая BOOL а там черте знает что.
    Но одну фамилие назову, бить надо Страуструпа или кто там до него был, вроде он крайний.


     
    blackman ©
     
    (2008-12-01 21:56)
    [30]

    бить надо Страуструпа или кто там до него был, вроде он крайний
    Низя! Я по его книге учился, когда С осваивал.
    И borland НЕ прав хотя бы потому, что DELPHI появился позже C. Надо было учесть существующее.
    К стати, нигде не говорится, что истина именно единица. Не ноль это да.
    Где вообще увидели единицу?
    Это и логично, поскольку анализируется не бит.
    А вообще, все эти условности легко отбрасываются в асме. Различаем длину операнда, а не какие-то придуманные слова…


     
    DVM ©
     
    (2008-12-01 22:14)
    [31]


    > И borland НЕ прав хотя бы потому, что DELPHI появился позже
    > C. Надо было учесть существующее.

    Это еще неизвестно, что раньше появилось Pascal или C. Оба где то в 1970 году, причем си даже на год попозже вроде.


     
    blackman ©
     
    (2008-12-01 22:24)
    [32]

    DVM ©   (01.12.08 22:14) [31]
    Я не о паскале, а о дельфи


     
    Anatoly Podgoretsky ©
     
    (2008-12-01 22:35)
    [33]

    > blackman  (01.12.2008 21:56:30)  [30]

    Я точно не помню, но вроде бы была определена константа TRUE = 1 и это работало, пока вдруг Микрософт не стал возвращать вместо 1 значение -1, что соответствует определению bool

    Ну дальше ты домыслишь сам.


     
    blackman ©
     
    (2008-12-02 12:18)
    [34]

    вроде бы была определена константа TRUE = 1
    Где? Такого я не видел.
    Идея с -1 понятна, но как-то не очень верится. Остается только гадать.


     
    KSergey ©
     
    (2008-12-02 12:45)
    [35]

    > Anatoly Podgoretsky ©   (01.12.08 22:35) [33]
    > Я точно не помню, но вроде бы была определена константа
    > TRUE = 1 и это работало, пока вдруг Микрософт не стал возвращать
    > вместо 1 значение -1, что соответствует определению bool
    >
    > Ну дальше ты домыслишь сам.

    А не надо было борланду домысливать.
    Понятно же, что в WinAPI — интерфейс Сишный, следовательно взгляд его писателей (вернее даже видение мира ввобще) — тоже сишный, под это и надо было подстравиваться, когда вводили BOOL и интерпретировали операции с ним.
    А они «по правильному» сделали. Не подумали.


     
    Anatoly Podgoretsky ©
     
    (2008-12-02 16:23)
    [36]

    > KSergey  (02.12.2008 12:45:35)  [35]

    Одно но, я не про Борланда рассказывал!


     
    clickmaker ©
     
    (2008-12-02 16:28)
    [37]

    -1 это WordBool, в OLE

    Вообще, булевский тип кем только не был: и int, и word, и byte


     
    Германн ©
     
    (2008-12-02 16:41)
    [38]


    > Вообще, булевский тип кем только не был: и int, и word,
    > и byte
    >

    А иногда и bit 🙂


     
    KSergey ©
     
    (2008-12-02 16:46)
    [39]

    > Anatoly Podgoretsky ©   (02.12.08 16:23) [36]
    > Одно но, я не про Борланда рассказывал!

    Это я понял, я немного про другое: в дельфи могли бы сами правильное сделать сравнение для не Boolean-типа под if


     
    Anatoly Podgoretsky ©
     
    (2008-12-02 16:56)
    [40]

    > clickmaker  (02.12.2008 16:28:37)  [37]

    Кто работал правильно (var <> 0 {False}), не пользовался константами TRUE (var = TRUE), или в стандартной форме if var {} — не пострадал.


     
    Anatoly Podgoretsky ©
     
    (2008-12-02 17:00)
    [41]

    > KSergey  (02.12.2008 16:46:39)  [39]

    Повторяю я не про Борланд рассказывал, хотя у Борланда свои проблемы с этим типом, но и описан нормальный путь по преобразованию в Boolean, наприер B := var <> 0.
    Зато у Борланд проблема с двоичным, троичным назначением Bool — когда он и Bool и Integer одновременно. Борланд пошел тупо. Если значение равно 0 то это false, неудача, кой где удача. И тут проблема, надо было объявить результат не по описанию, а по использованию.


    Что такое логическая логика? Примеры логической логики

    5 ноября 2018 г.

    Что такое логическая логика?

    Булева логика — это форма алгебры, в основе которой лежат три простых слова, известные как булевы операторы: «Или», «И» и «Не». В основе логической логики лежит идея, что все значения либо истинны, либо ложны. В платформе Lotame использование логической логики позволяет создавать более сложные определения аудитории, позволяя создавать аудитории в соответствии с очень конкретным набором определений.В этой статье исследуется использование отдельных логических операторов и их отношение к построению аудитории.

    Пример «ИЛИ»

    Пример «И»

    Пример «НЕ <»

    Логическая логика, проиллюстрированная

    Пример работы логической логики при построении аудитории: OR

    Логический оператор «ИЛИ» используется для выражения того, что пока выполняется одно из двух или более условий, значение указанного запроса истинно.

    Например, для создания аудитории, включающей всех, кто любит мексиканскую, китайскую или французскую кухню, будет применяться следующее определение аудитории:

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

    Пример логической логики при построении аудитории: И

    В качестве логического оператора «И» указывает, что ВСЕ указанные условия должны быть выполнены, чтобы запрос вернул истину.

    В случае, если клиент собирал аудиторию и хотел нацелиться только на пользователей, которые проявили симпатию к спортивным автомобилям и Fishing и History, будет применяться следующее определение аудитории:

    Использование оператора «И» означает, что пользователь должен соответствовать ВСЕМ указанным критериям, чтобы быть включенным в аудиторию; пользователи, которым нравится только рыбалка или только рыбалка и история (т. д.), будут исключены из этого определения аудитории.

    Пример работы логической логики при построении аудитории: НЕ <

    Логический оператор «НЕ» используется для исключения узлов из определения аудитории. Поскольку это относится к созданию определения аудитории, «НЕ» будет исключать всех пользователей, подпадающих под узел, который был добавлен «НЕ».

    Например, чтобы создать аудиторию из пользователей старше 18 лет (НЕ 13-17 лет), проявляющих интерес к фильмам, будет использоваться следующее определение аудитории:

    В этом случае «НЕ» перед 13-17 означает, что в это определение аудитории не будут включены пользователи в этом возрастном диапазоне.Также стоит отметить, что здесь также используется оператор «И». В переводе на простой английский это определение будет читаться как «Пользователи в возрасте от 13 до 17 лет, которые интересуются фильмами.

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

    Узнайте больше о DMP в этом коротком видео:


    Хотите узнать больше? Давай переписываться. Мы хотели бы показать вам демонстрацию нашей платформы и то, как она может помочь вашему маркетингу работать на вас, чтобы повысить вовлеченность и коэффициент конверсии.

    Свяжитесь с Lotame сегодня

    .

    Руководство для начинающих по операторам логического поиска

    Попытка сузить круг кандидатов на должность может быть сложной задачей для любого рекрутера. Использование логического поиска может помочь вам сэкономить время и улучшить качество и специфичность кандидатов из потенциального пула.

    Логический поиск основан на работе выдающегося британского математика Джорджа Буля. Его наследием была булева логика, теория математики, в которой все переменные либо «истина», либо «ложь», либо «включены» или «выключены».Эта логика и по сей день лежит в основе всех цифровых устройств, присутствуя почти в каждой строчке компьютерного кода.

    Логическое поисковое письмо — это навык, который необходимо знать ведущим рекрутерам, чтобы получать значимые результаты поиска кандидатов с помощью широкого спектра программного обеспечения, включая Linkedin, различные порталы вакансий и Google. Однако полностью построенные логические строки поиска могут выглядеть запутанными и сложными, и их трудно написать. Но не бойтесь! Мы здесь, чтобы научить вас некоторым хитростям торговли.

    Что такое логический поиск?

    Boolean Search использует комбинацию ключевых слов и трех основных логических операторов (AND, OR и NOT) для организации и анализа результатов поиска. Он дает более точные и релевантные результаты,
    позволяет вам перемещаться по подходящим кандидатам, игнорируя несвязанные.

    Первое, что важно понять в отношении Boolean, — это то, что нужно понимать всего пять элементов синтаксиса. Это:

    И
    ИЛИ
    НЕ
    ()
    «»

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

    Оператор AND

    Возьмите эти две группы. В первую группу входят все люди, у которых есть ключевое слово «найм» где-то в их профиле LinkedIn, а во второй — все те, у кого есть ключевое слово «HR». Но давайте посмотрим, что происходит, когда мы используем следующую логическую строку:

    Набор персонала И HR

    Теперь мы просим базу данных LinkedIn искать всех людей, которые включают слово «набор» и слово «HR» в свой профиль LinkedIn.Мы отфильтровали лишнее, и осталось
    с более конкретными кандидатами, попадающими в поперечное сечение диаграммы Венна.

    Чем больше критериев мы добавим с помощью оператора AND, тем меньше людей мы найдем с помощью нашего поиска. Это звучит как оксюморон, но по мере того, как мы сужаем область поиска с помощью этого метода, мы находим людей, наиболее подходящих для данной позиции.

    Оператор операционной

    В этом примере у одной группы людей есть ключевое слово «Наем» в своем профиле LinkedIn, а у другой — ключевое слово «Рекрутинг».Оба слова означают одно и то же с точки зрения набора навыков, но для электронной базы данных это совершенно разные термины. Давайте воспользуемся следующей логической строкой, чтобы исправить это:

    Набор ИЛИ Набор

    Теперь мы просим базу данных искать кандидатов, которые включают один из двух терминов в свой профиль LinkedIn или оба термина одновременно. Это гарантирует, что потенциальный правильный кандидат
    не пропадет через сеть из-за семантики!

    Использование ИЛИ расширяет поиск и охватывает всю диаграмму Венна.Это позволяет нам находить скрытые таланты, например, люди, которые выразили свои навыки и опыт иначе, чем вы обычно ищете, например банковское дело ИЛИ банк ИЛИ финансы ИЛИ финансы.

    Оператор НЕ

    Следующий пример поможет вам сузить результаты поиска, опустив ненужные критерии. Давайте возьмем первые элементы, которые снова используются с ключевыми словами «Наем» и «HR» в профиле LinkedIn, и воспользуемся следующей логической строкой:

    Набор персонала НЕ HR

    Мы просим базу данных искать кандидатов, в профиле которых есть слово «Рекрутмент», но исключать тех, у кого в профиле есть слово «HR», и тех, у кого в профиле есть только слово «HR».Это означает, что мы ищем кандидатов, которые попадают в левую часть диаграммы Венна:

    Использование NOT позволяет нам удалять ложные срабатывания при поиске кандидатов, удаляя нерелевантные результаты.

    ПОМНИТЕ: Каждый из трех вышеупомянутых логических операторов всегда должен быть записан в ВЕРХНЕМ РЕГИСТРЕ. В противном случае они не будут работать.

    Кронштейны ()

    При использовании логического поиска невозможно определить, как компьютер решит наше уравнение.Это означает, что для получения наиболее релевантного для нас результата мы должны использовать круглые скобки, чтобы указать компьютеру, что решать в первую очередь. Вот здесь-то и пригодятся скобки.

    Скобки необходимы для написания сложных строк поиска, но их применение часто вызывает наибольшую путаницу среди рекрутеров. По сути, предложению в квадратных скобках предоставляется приоритет над другими элементами
    вокруг него. Например, если бы мне дали следующий поисковый запрос:

    талант ИЛИ количество часов И набор персонала

    Могу ли я сказать, что хочу найти кого-то, у кого в профиле есть ключевое слово «талант» или ключевое слово «HR», а также слово «найм»? Или я имею в виду, что у них должен быть «талант» или сочетание «HR» и «найма»? Видите ли, отсутствие скобок не позволяет базе данных понять, что вы имеете в виду.Посмотрите, как все меняется, когда вы добавляете скобки.

    В следующем примере я сказал базе данных, что мне нужно найти кого-то, у кого есть «талант» или «HR», или и то, и другое, и что им также нужен «набор»:

    (талант ИЛИ час) И набор

    Но в следующем примере я сказал базе данных, что мне нужно найти кого-то, у кого есть «талант» или сочетание «найма» и «HR»:

    талант ИЛИ (часы работы И набор)

    Чаще всего рекрутеры используют квадратные скобки при использовании строк ИЛИ.По сути, если где-то в поиске вы написали ИЛИ, подумайте, куда пойдут скобки, потому что их расположение
    повлияет на то, как компьютер решит ваш логический поисковый запрос, что повлияет на результаты поиска, которые вы получите обратно.

    Котировки «»

    Использование цитат позволяет еще больше конкретизировать. Если ключевые слова, которые вы ищете, нужно рассматривать как единое целое (например, газовый инженер), их необходимо заключить в кавычки в строке поиска.В противном случае база данных будет рассматривать пространство между двумя словами как И, что приведет к большему поиску, охватывающему оба слова (газ И инженер). Не идеально!

    Используйте кавычки, если в поисковом запросе есть два или более слов, которые необходимо соединить вместе, например «Человеческие ресурсы» или «Информационные технологии». Цитаты, по сути, определяют количество слов как один точный термин, что позволяет вам определять более точно.

    Сегодня мы объяснили суть Boolean! Мы надеемся, что это помогло вам лучше понять основы логического поиска и сделало его менее сложным для решения в будущем.Конечно, есть несколько других логических модификаторов, которые вы можете использовать для дальнейшего уточнения и улучшения логических поисков, а также множество других правил использования логических значений в различных других поисковых системах и базах данных, помимо LinkedIn.

    Чтобы получить полное и всестороннее руководство по овладению искусством логического поиска, посетите наши специальные курсы по SocialTalent. Почему бы не заказать демо-версию сегодня?

    .

    В чем разница между типами bool и Boolean в C #

    Переполнение стека

    1. Около
    2. Продукты

    3. Для команд
    1. Переполнение стека
      Общественные вопросы и ответы

    2. Переполнение стека для команд
      Где разработчики и технологи делятся частными знаниями с коллегами

    3. Вакансии
      Программирование и связанные с ним технические возможности карьерного роста

    4. Талант
      Нанимайте технических специалистов и создавайте свой бренд работодателя

    5. Реклама
      Обратитесь к разработчикам и технологам со всего мира

    .

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *