Главная страница
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.043 c
14-1126006066
A.L.I.E.S
2005-09-06 15:27
2005.10.09
Кто и где работает самый лучший программист


11-1107935465
Barloggg
2005-02-09 10:51
2005.10.09
Как узнать тип родителя?


1-1126187723
Igor_thief
2005-09-08 17:55
2005.10.09
Работа с USB


6-1118642221
silvestr
2005-06-13 09:57
2005.10.09
winpcap


2-1125376577
злобная танька
2005-08-30 08:36
2005.10.09
StringGrid