Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Напомните...   Найти похожие ветки 

 
ПЛОВ ©   (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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.051 c
4-1123669868
Alexa
2005-08-10 14:31
2005.10.09
Завершение процессов


14-1127192654
Бугага
2005-09-20 09:04
2005.10.09
Интеграция науки и образования


11-1107841870
DmiSb
2005-02-08 08:51
2005.10.09
Как изменить шрифт в PopupMenu ?


2-1125370412
The Sound
2005-08-30 06:53
2005.10.09
String TO PAnsiChar


5-1102363739
FunkyByte
2004-12-06 23:08
2005.10.09
Помогите найти (или сделать) StringGrid с необычными свойствами