比如我想判断 -8 是正数还是负数,通常是采用 :if -8 > 0 then -8是正数if -8 < 0 then -8是负数我现在有一个需求,不能用这样的判断语句判断-8是正数还是负数,不知有没有别的办法?
无论是怎么判断,都会用到if..then这是无法避免的。
function IsBiggerThanZero(i:integer):boolean;overload; const x=32;//根据不同数据类型的bit位数可以选定不同的数值。 var t:cardinal; begin t:=cardinal(i); result:=((t shr x)=0); end;
const
x=32;//根据不同数据类型的bit位数可以选定不同的数值。
var
t:cardinal;
begin
t:=cardinal(i);
result:=((t shr x)=0);
end;
result:=((t shr x)=0);
应该是:
result:=((t shr (x-1))=0);
f:boolean;
begin
f:=-8<0;//f为true
end;