闰年
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。