Форум: "Потрепаться";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
ВнизПроцедура изменения состояния. Найти похожие ветки
← →
AlexG (2003-07-21 14:20) [0]Кто нить знает стандартную процедуру или функцию изменения состояния типа boolean. Предлагать только стандартые если они кончено есть, а написать я и сам могу, но интересно есть такая или нет.
← →
ЮЮ (2003-07-21 14:22) [1]Чьего состояния?
← →
AlexG (2003-07-21 14:24) [2]Изменение true на false и наоборот. Вот чего.
← →
icWasya (2003-07-21 14:24) [3]A:=not A
← →
ЮЮ (2003-07-21 14:26) [4]Такое он и сам написать может, ему бы стандартную функцию, лучше API :-)
← →
VMcL (2003-07-21 14:27) [5]Как всегда - высшее.
← →
AlexG (2003-07-21 14:30) [6]icWasya © (21.07.03 14:24)
A:=not A
спасибо, а я думал что это делается как то сложнее!!!
← →
pasha_golub (2003-07-21 16:17) [7]Можно и посложнее A:= (A xor A) or not A;
:-)
← →
Sandman25 (2003-07-21 16:49) [8]A := Boolean(1-Ord(A));
:-)
← →
pasha_golub (2003-07-21 18:41) [9]A:= boolean(1 xor (byte(A) mod 2)))
← →
Sandman25 (2003-07-21 18:44) [10]A := A = False;
← →
Sandman25 (2003-07-21 18:51) [11]Только что проверил в CPU Window.
A := A = False транслируется в 2 команды
cmp byte ptr[a],$00
setz byte ptr[a];
A := Not A транслируется в 3 команды
mov dl, [a]
xor dl,$01
mov [a],dl
Получается, что лучше писать "извращенный" вариант???
← →
HolACost (2003-07-21 18:52) [12]
if A then
A := false
else
if not A then
A := true;
← →
VMcL (2003-07-21 18:58) [13]>Sandman25 © (21.07.03 18:51)
Включи оптимизацию и будет ещё интереснее. Если немного всякого "хлама", то A попадает в регистр AL и выглядит всё как-то так:
//A := not A;
xor al, $01
//A := A = False;
test al, al
setz al
:)
← →
default (2003-07-21 21:27) [14]а так
xor al, al
shld al, a, 1
← →
Sandman25 (2003-07-22 10:41) [15]VMcL © (21.07.03 18:58)
У меня оптимизация БЫЛА включена. Я поэтому и удивился.
Правда, я после присвоения A его использовал (if A then Caption := "1"; причем это была модульная переменная), чтобы оптимизатор его совсем не выкинул.
← →
Юрий Зотов (2003-07-22 11:50) [16]> HolACost (21.07.03 18:52)
Крутой код! Главное - структурирован грамотно.
Но вот так было бы еще круче:
if A = True then
A := False
else
if not (A = True) then
A := True;
:о)
← →
Sandman25 (2003-07-22 12:10) [17]Юрий Зотов © (22.07.03 11:50)
Тогда уже так:
if A = True then
A := False
else
if not (A = True) then
A := not (False);
:)
← →
Переяслов Григорий (2003-07-22 18:01) [18]Это орех )
← →
SergP (2003-07-22 19:15) [19]
> if A = True then
> A := False
> else
> if not (A = True) then
> A := not (False);
Интерестно, а еще длиннее кто-нить напишет? А то что-то ничего в голову не приходит.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2003.08.07;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c