Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Приведение целого типа к типу булеан

18K
11 февраля 2007 года
CyberFox
11 / / 08.09.2006
Здравствуйте, ситуация такая: пишу компилятор (в учебных целях). Сталкнулся с проблемой преобразования числового типа к типу boolean, где false = 0, true <> 0. Скажем, в регистре eax у меня какое-то число, мне надо привести его к boolean, желательно без переходов. Возможно ли это?
551
11 февраля 2007 года
Pavia
357 / / 22.04.2004
ответ числовой тип уже приведен, при таком определение.

А если хочеться, то можно привести к false = 0, true=FF
тип
MOV AX, число
NEG AX
SBB AX,AX
В результате будет 0 при входном значени AX=0 и FFFF при любом другом входном значении. Или если хочешь чтобы тип FALS=1 до добавь в конец
NEG AX,AX
309
12 февраля 2007 года
el scorpio
1.1K / / 19.09.2006
False - это ноль. Любое число, отличное от нуля, считается истинным.
 
Код:
if (Pointer) // Если указатель не нулевой, то...
    Что_то_делаем (Pointer)

Но true - это конктретное значение, равное (в зависимости от компилятора) 1 или -1. Посему следующий код неверный
 
Код:
if (Value == true) // Если Value не равно 1 (или -1), то будет ЛОЖЬ
18K
12 февраля 2007 года
CyberFox
11 / / 08.09.2006
Pavia, спасибо.
El Scopiо, не понял тебя. Но и тебе спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог