Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
ВнизНапомните... Найти похожие ветки
← →
ПЛОВ © (2005-09-20 13:59) [0]...функцию для определения знака числа в Делфи. Не могу никак вспомнить :)
← →
TUser © (2005-09-20 14:04) [1]if abs (I) = I then ShowMessage ("i>=0");
← →
Джо © (2005-09-20 14:06) [2]Sign (uses Math)
← →
Reindeer Moss Eater © (2005-09-20 14:07) [3]math.pas
sign()
← →
Johnmen © (2005-09-20 14:07) [4]if -I < I then {+}
else if -I > I then {-}
else {0}
← →
ПЛОВ © (2005-09-20 14:38) [5]У меня в math.pas такого нету!!! Но все-равно спасибо :)
← →
Джо © (2005-09-20 14:50) [6]
> [5] ПЛОВ © (20.09.05 14:38)
> У меня в math.pas такого нету!!! Но все-равно спасибо :)
Делфи 5, наверное?
--
В math.pas такое, простое, как топор :)
function Sign(const AValue: Integer): TValueSign;
begin
Result := ZeroValue;
if AValue < 0 then
Result := NegativeValue
else if AValue > 0 then
Result := PositiveValue;
end;
function Sign(const AValue: Int64): TValueSign;
begin
Result := ZeroValue;
if AValue < 0 then
Result := NegativeValue
else if AValue > 0 then
Result := PositiveValue;
end;
function Sign(const AValue: Double): TValueSign;
begin
if ((PInt64(@AValue)^ and $7FFFFFFFFFFFFFFF) = $0000000000000000) then
Result := ZeroValue
else if ((PInt64(@AValue)^ and $8000000000000000) = $8000000000000000) then
Result := NegativeValue
else
Result := PositiveValue;
end;
← →
Anatoly Podgoretsky © (2005-09-20 14:51) [7]Это элементарная функция, если в библиотеке нет, то напиши сам секунд за 30
X < 0 -> -1
X = 0 -> 0
X > 0 -> 1
← →
ПЛОВ © (2005-09-20 17:51) [8]
> Делфи 5, наверное?
ага :)
> Anatoly Podgoretsky ©
Написать самому - то не проблема конечно, думал, может кто что интересное подскажет...
А на асме, чтоб возвр. значение или 1 или -1?
← →
alpet © (2005-09-20 18:07) [9]Примерно так:
function Sing (value: Integer): Integer;
assembler
mov eax, value
sar eax, 31
or eax, 1
end;
← →
alpet © (2005-09-20 18:19) [10]function Sign (value: Integer): Integer;
asm
mov eax, value
test eax, eax
jnz _zerro
sar eax, 31
or eax, 1
_zerro:
end;
← →
MBo © (2005-09-20 20:24) [11]>alpet © (20.09.05 18:19) [10]
move eax,value - лишнее, если используется соглашение по умолчанию (register)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.10.09;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c