想检查一个数是否2的n次幂,网上没找到现成的delphi函数,自己写一个,这里记录一下。
顺便庆祝一下五四节,各位,节日快乐!
// 判断一个数字是否2的n次方幂
function is2nPower(num: integer):boolean;
begin
Result := false;
if (num mod 2 <> 0) then
Result := false
else
begin
while (num > 0) do
begin
if (num = 2) then
begin
Result := true;
break;
end
else if (num = 1) then
begin
Result := false;
break;
end
else
begin
num := num div 2;
if (num mod 2 = 1) then
begin
Result := false;
break;
end;
end;
end;
end;
end;