![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
maohuiabc
以后再说
展开
-
x&(x-1)的巧用:用于判断x是否为2的n次幂,计算二进制1的个数
最近学到 x&(x-1) 这个式子的两个用法,跟大家分享一下。 作用:将x的二进制表示从最低位起第一个为1的位清0; 一、快速判定x是否为2^n幂。 如果x!=0 且x&(x-1)==0,则x为2的n次幂。(当然不能判定n是多少) 前提条件:x数据类型应为整数; #原创 2011-09-22 23:26:50 · 1232 阅读 · 0 评论 -
#define ROUND(x,y) (((x)+(y-1))&~(y-1))申请内存空间时,为了减少内存碎片
我在vc6.0的STRCORE.CPP中发现了这个宏,经过查资料,找到了它的作用。 这个宏是用来进行数据对齐的,在可变参数里面用得比较多,例如: ROUND(sizeof(char), sizeof(int)); 展开就是(sizeof(char)+size原创 2011-09-22 23:53:02 · 1135 阅读 · 0 评论 -
最大公约数、最小公倍数
求最大公约数最直接的办法是从两数中较小数与2之间的所有整数中一个一个的找。但这个方法有点浪费。 有两种有名的方法:1.辗转相除法2.更相减损之术这两种方法比较有名,而且现在人教版的高中数学中已经介绍了这两种方法。 下面这个是第2个,因为它只需要加减法就可以,效率高。 int MaxFactor(unsigned int a,unsigned int b) { while(a!=b)原创 2011-11-29 18:52:43 · 1332 阅读 · 0 评论