1.二进制与十进制之间的转换
1.二进制转换为10进制就是每一位乘2的n-1次方
1001转换为二进制就等于1*2^(4-1) + 0*2^(3-1) + 0*2^(2-1) + 1*2^(1-1) = 9;
2 .十进制转二进制,就是反复余2,按倒序将余数排列
9转换为二进制就是:
9 % 2 = 1; 9 / 2 = 4;
4 % 2 = 0; 4 / 2 = 2;
2 % 2 = 0; 2 / 2 = 1;
1 % 2 = 1; 1 / 2 = 0;
9的二进制就是1001;倒着往上面看出来的;
2.算法实现
取余运算:
while(n){
if (n % 2 == 1){
count ++;
}
n /= 2;
}
--------------------------------------------------
位运算:
while(n){
if (n & 1 == 1){
count ++;
}
n /= 2;
}