Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как преобразовать boolean в integer?  [new]
Desil
Member

Откуда: Город Брянск (знаете такой?)
Сообщений: 569
Неужели нельзя как в C++? В смысле true = 1, a false = 0???
Вариант:
Var x : boolean;
     y : integer;
begin
     y := x as integer;
end;
как-то не хочет прокатывать...
6 окт 04, 21:26    [1014356]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
ZrenBy
Member

Откуда: Костромаа
Сообщений: 1555
i := Integer(b);
6 окт 04, 21:47    [1014372]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
Ord(true) = 1
Ord(false) = 0
7 окт 04, 07:33    [1014571]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
Desil
Member

Откуда: Город Брянск (знаете такой?)
Сообщений: 569
ZrenBy
i := Integer(b);

Большое спасибо!
7 окт 04, 08:04    [1014592]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
distinger
Member

Откуда: Москва
Сообщений: 447
Бектуров Роман
Ord(true) = 1
Ord(false) = 0


по моему Ord(true) может быть равен -1
7 окт 04, 09:41    [1014826]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
в каких случаях ? в болшинстве случаев исползую Ord вместо integer() пока проблем небыло
7 окт 04, 10:29    [1015056]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
distinger
Member

Откуда: Москва
Сообщений: 447
Бектуров Роман
в каких случаях ? в болшинстве случаев исползую Ord вместо integer() пока проблем небыло

боюсь не вспомню, но я с этим сталкивался и поэтому всегда делаю
Abs(Ord(...)) так надежней.

P.S. Береженого бог бережет... сказала монашка надевая 2-й презерватив на свечку
7 окт 04, 11:12    [1015227]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2676
Вообще-то, если этот boolean получен от какой-либо DLL, или любого модуля написанного, скажем, на C, то
Ord(false) = 0,
а вот Ord(true) может быть равным всему остальному.
7 окт 04, 11:23    [1015260]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
distinger
Member

Откуда: Москва
Сообщений: 447
Так правильней
False - это 0
True - это не 0
по определению
7 окт 04, 11:27    [1015278]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
Makar4ik

Вообще-то, если этот boolean получен от какой-либо DLL, или любого модуля написанного, скажем, на C, то
Ord(false) = 0,
а вот Ord(true) может быть равным всему остальному.


если переменая имеет тип boolean то Ord(X) при X = true, будет 1 и Ord(X) при X = false, будет 0 независимо от того откуда это значение получено.
7 окт 04, 11:39    [1015326]     Ответить | Цитировать Сообщить модератору
 Re: Как преобразовать boolean в integer?  [new]
Бектуров Роман
Member

Откуда: Новосибирск
Сообщений: 1606
а можно так, 100% гарантия :-)

uses Math

x := IfThen(BooleanValue, 1, 0);

:-))
7 окт 04, 11:40    [1015329]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить