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

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),这里就比较好理解.

 

posted @ 2008-05-08 01:20 D10.天地弦 阅读(91) 评论(0)  编辑 收藏 网摘 所属分类: 个人经验

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索


China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!

相关文章:

相关链接: