编程常考记忆点

闰年

1)被4整除并且不能被100整除的是闰年;

2)能被400整除的也是闰年。

(year%4==0 && year%100!=0) || year%400==0

求十进制数在二进制中1的个数

参考来源:https://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html

其中最快的方法是:

int BitCount(unsigned int n){
    unsigned int c =0 ;
    for (c =0; n; ++c){
        n &= (n -1) ; // 清除最低位的1
    }
    return c ;
}

计算次数与输入n的大小无关,只与n中1的个数有关。如果n的二进制表示中有k个1,那么这个方法只需要循环k次即可。

其原理是不断清除n的二进制表示中最右边的1,同时累加计数器,直至n为0。

发布了126 篇原创文章 · 获赞 2 · 访问量 3731

猜你喜欢

转载自blog.csdn.net/lemonade13/article/details/104473356