| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2998 人关注过本帖
标题:如何判断一个数是2的幂(用一个表达式) ----帖子里有
只看楼主 加入收藏
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
 问题点数:0 回复次数:8 
如何判断一个数是2的幂(用一个表达式) ----帖子里有
本人在网上找到一个判断一个数是2的幂的表达式
希望有人写段c还有c++的代码帮我实现一下
#define POW2(X)  (X)&(X-1)?(TRUE):(FALSE)
搜索更多相关主题的帖子: 帖子 判断 表达 FALSE TRUE 
2007-12-25 16:39
万兽无缰
Rank: 1
等 级:新手上路
威 望:1
帖 子:296
专家分:0
注 册:2007-8-27
收藏
得分:0 
X的Y方
#include <math.h>
#include <stdio.h>

int main(void)
{
   double x = 2.0, y = 3.0;

   printf("%lf raised to %lf is %lf\n", x, y, pow(x, y));
   return 0;
}

女朋友问我想怎么死~~~
             我说我想"爽死"
2007-12-25 17:07
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
我不是这个意思
我是说用#define POW2(X)  (X)&(X-1)?(TRUE):(FALSE)实现
判断x是否是2的幂

2007-12-25 18:34
lonmaor
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:郑州
等 级:版主
威 望:75
帖 子:2637
专家分:6423
注 册:2007-11-27
收藏
得分:0 
楼主给的式子似乎结果不对。
bool pow2(int x)
{
    return x&(x-1)?false:true;
}
2007-12-25 18:59
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
#define TRUE 1
#define FALSE 0
#define POW2(X)  (X)&(X-1)?(TRUE):(FALSE)
int main()
{
 int i=65536;
 if(POW2(i))
   printf("True");
 else
   printf("False");
 return 0;
}

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-25 20:05
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
楼上的是对的
不过好像反了
#include"stdio.h"
#define TRUE 1
#define FALSE 0
#define POW2(X)  (X)&(X-1)?(TRUE):(FALSE)
void main()
{
    int i;
    printf("请输入一个整数\n");
    scanf("%d",&i);
if(POW2(i))
   printf("false\n");
else
   printf("true\n");
}

2007-12-25 20:49
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
顺便问一下
c++中不是有布儿型吗
可不可以用c++写个类似的
也就可以不用定义ture 和 false了吗

2007-12-25 20:51
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
#define TRUE 1
#define FALSE 0
#define POW2(X)  (X)&(X-1)?(TRUE):(FALSE)
这三句换成
#define POW2(X)  (X)&(X-1)?(true):(false)
就可以在c++里面用了,要注意大小写,c++中的布尔型所有字母都是小写.

我前面的程序没调试过,看了看的确反了,原因是我想当然的以为上面的宏定义中,TRUE表示的是2的幂,而FALSE表示不是2的幂.谁知道刚好反过来了

从BFS(Breadth First Study)到DFS(Depth First Study)
2007-12-26 08:23
zmhdxy
Rank: 1
等 级:新手上路
帖 子:452
专家分:0
注 册:2007-9-27
收藏
得分:0 
非常感谢

2007-12-26 14:08
快速回复:如何判断一个数是2的幂(用一个表达式) ----帖子里有
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050711 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved