您的位置:首页 > 其它

判断某个整数是否为2的次方数

2008-05-08 01:20 411 查看
var
j: Integer;
begin
j := StrToInt(edt1.Text);
if (j > 1) and ((j and (j - 1)) = 0) then
ShowMessage('是2的次方数');

1. (j and (j - 1))
这部份条件里的and是进行位与运算
这里假设j符合条件(4)
0100 = 4 (j)
0011 = 3 (j-1)
----AND
0000 = 0
*符合条件的整数(1和0除外)经过这样运算结果为0
((j and (j - 1)) = 0)就比较好理解了

2. (j > 1)
理解了(1),这里就比较好理解.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: