那谁的技术博客
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2008年8月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
统计
随笔 - 152
文章 - 0
评论 - 484
引用 - 0
公告
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(27)
给我留言
查看公开留言
查看私人留言
随笔分类
(171)
C\C++(17)
(rss)
ccache(5)
(rss)
CGL(5)
(rss)
Linux/Unix(24)
(rss)
Perl(3)
(rss)
操作系统(1)
(rss)
读书笔记(3)
(rss)
服务器设计(27)
(rss)
脚本语言(1)
(rss)
其他(4)
(rss)
设计模式(24)
(rss)
算法与数据结构(39)
(rss)
图形学(1)
(rss)
网络编程(17)
(rss)
随笔档案
(152)
2008年11月 (2)
2008年10月 (6)
2008年9月 (12)
2008年8月 (11)
2008年7月 (5)
2008年6月 (2)
2008年4月 (3)
2008年3月 (3)
2008年2月 (1)
2008年1月 (2)
2007年12月 (3)
2007年11月 (3)
2007年8月 (1)
2007年7月 (2)
2007年6月 (2)
2007年5月 (9)
2007年4月 (1)
2007年3月 (8)
2007年2月 (3)
2007年1月 (5)
2006年12月 (4)
2006年11月 (3)
2006年10月 (5)
2006年9月 (4)
2006年8月 (13)
2006年7月 (28)
2006年4月 (1)
2006年3月 (4)
2006年2月 (4)
2006年1月 (1)
2005年12月 (1)
相册
文件
开源项目
Larbin
libevent
lighttpd
memcached
PCRE for Windows (Win32)
sqlite
STLFilt
论坛
ChinaUnix
OldLinux
朋友
cugb_cat
Edengundam
win_hate
ypxing
老罗
收藏
Dictionary of Algorithms and Data Structures
unixtoolbox
最新随笔
1. ccache发布0.5版本
2. 红黑树的实现源码(第二次修订版)
3. ccache发布0.4版本
4. 对一个服务器的几步优化
5. 服务器定时器处理要注意的问题
6. epoll相关资料整理
7. epoll为什么这么快
8. 多进程服务器中,epoll的创建应该在创建子进程之后
9. (算法导论习题解exercise2.3-4)递归版插入排序
10. (算法导论习题解problem2.4)寻找一个序列中逆序对的数量
搜索
积分与排名
积分 - 172807
排名 - 7
最新随笔
1. ccache发布0.5版本
2. 红黑树的实现源码(第二次修订版)
3. ccache发布0.4版本
4. 对一个服务器的几步优化
5. 服务器定时器处理要注意的问题
6. epoll相关资料整理
7. epoll为什么这么快
8. 多进程服务器中,epoll的创建应该在创建子进程之后
9. (算法导论习题解exercise2.3-4)递归版插入排序
10. (算法导论习题解problem2.4)寻找一个序列中逆序对的数量
最新评论
1. re: 红黑树的实现源码(第二次修订版)
@lin
CSDN?我不知道这个事情,这个帖子是我在cppblog的原创.
--创
2. re: 红黑树的实现源码(第二次修订版)[未登录]
csdn中的那个也是你发的吧?呵.....
--lin
3. re: ccache发布0.5版本
good 好人!
--天天
4. re: ccache发布0.5版本
评论内容较长,点击标题查看
--创
5. re: ccache发布0.5版本[未登录]
能对比的讲一下和memcache的异同么?
--tony
阅读排行榜
1. 08年个人学习计划(6644)
2. 常见设计模式的解析和实现(C++)文档及源码打包下载(4374)
3. epoll学习笔记(3634)
4. 二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)(3179)
5. 使用tolua++创建基于C\C++语言的lua脚本(3053)
6. [数据结构]红黑树的实现源码(2764)
7. [算法]红黑树的实现代码(修订版)(2731)
8. 探索C++的秘密之一详解extern "C"(2567)
9. 发布我的开源cache库ccache(2425)
10. P2P原理的解释与实现(2348)
11. (C++)一个愚蠢的错误(2333)
12. 第一个socket程序-C\S模式的文件传输程序(2250)
13. epoll为什么这么快(2186)
14. lighttpd1.4.18代码分析(一)--watcher,worker模型(2113)
15. 两种网络数据格式的比较(2081)
16. 研究了一下SGI STL的内存算法(2077)
17. AVL树的实现代码(2061)
18. [算法]找出m个数中最小的n个数(2028)
19. 程序设计经验总结(1989)
20. 服务器公共库开发-内存池管理模块(1851)
21. NeHe OpenGL教程第六课--Texture Mapping(纹理映射)的学习笔记(1808)
22. 如何使用位操作得到大于N且为2的次方的最小的数(1773)
23. 服务器公共库开发--log系统(1746)
24. epoll相关资料整理(1658)
25. 架构图 && 瓶颈(1613)
26. [算法问题]合并两个已经排序的数组为另一个数组(1585)
27. AVL树中单,双旋转的解释(1582)
28. memcache内存池的设计原理(1578)
29. 对一个服务器的几步优化(1572)
30. 红黑树的实现源码(第二次修订版)(1571)
31. 服务器公共库开发--读取ini文件格式的类(1564)
32. 服务器定时器处理要注意的问题(1563)
33. 二叉查找树的解析与实现(1548)
[算法问题]判断一个数是不是2的幂?
位操作的运用:
bool
Is2Power(
int
nNum)
{
return
nNum
>
0
?
((nNum
&
(
~
nNum
+
1
))
==
nNum
?
true
:
false
) :
false
;
}
posted on 2006-07-10 23:25
那谁
阅读(1230)
评论(12)
编辑
收藏
引用
所属分类:
算法与数据结构
Comments
#
re: [算法问题]判断一个数是不是2的幂?
橙子
Posted @ 2006-07-11 09:20
强.
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
3×7=51
Posted @ 2006-07-11 09:48
将((nNum & (~nNum + 1)) == nNum换成!(nNum & (nNum - 1))也许会更好一点
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
LOGOS
Posted @ 2006-07-11 19:30
过于极至的东西...我完全看不明白
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
沐枫
Posted @ 2006-07-12 09:27
这个东西,网络上已经存在多时了。
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
Ying-Shen
Posted @ 2006-07-12 16:29
3×7=51
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
Ying-Shen
Posted @ 2006-07-12 16:30
@3×7=51
为什么呢?
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
3×7=51
Posted @ 2006-07-12 16:36
@Ying-Shen
你将nNum和nNum - 1用2进制打印出来看看就知道为什么了,如果一个数不行的话多试几个数。
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
我爱ACM
Posted @ 2006-07-17 15:44
好文,收进我的标程库了
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
waterflier
Posted @ 2006-07-30 21:16
是二的幂的数二进制表现方式:
2^1 = 2 10
2^2 = 4 100
2^3 = 8 1000
.......
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
phus
Posted @ 2006-09-23 00:26
return n&(n-1) == 0;
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
西山老土匪
Posted @ 2007-10-31 14:59
return n &&(n&(n-1))
比较好 可以测出0 这种特殊情况
回复
更多评论
#
re: [算法问题]判断一个数是不是2的幂?
pxxxb
Posted @ 2008-11-02 10:42
我有一个比较简单的方法:可以用一行表达式来表示:
#define Pow2(x) x&(x-1)?true:false
具体实现可以通过一个程序来写:
#include "stdafx.h"
#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");
}
回复
更多评论
刷新评论列表
标题
姓名
主页
验证码
*
内容(提交失败后,可以通过“恢复上次提交”恢复刚刚提交的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
相关文章:
ccache发布0.5版本
红黑树的实现源码(第二次修订版)
ccache发布0.4版本
(算法导论习题解exercise2.3-4)递归版插入排序
(算法导论习题解problem2.4)寻找一个序列中逆序对的数量
(算法导论习题解exercise2.3-7)给定一个整数序列以及一个数X,确定该序列中是否有两个数的和为X
原地归并算法
AVL树删除节点算法
AVL树中单,双旋转的解释
前缀匹配问题与trie树
相关链接:
网站导航:
博客园
BlogJava
博客生活
IT博客网
C++博客
PHP博客
博客园社区
管理博客
教师博客
天文博客
汽车博客
足球博客
股票博客
电子博客
管理