举例:前十进制 后二进制
2 :2%2=0 2/2=1 2/2%2=0 2/2/2=0停止 即二进制为10
3 同理3%2=1 3/2=1 3/2%2=1 3/2/2=0停止 即二进制为11
4 同理4%2=0 4/2=2 4/2%2=0 4/2/2=1 4/2/2%2=1 4/2/2/2=0停止 即二进制为100
5同理5%2=1 5/2=2 5/2%2=0 5/2/2=1 5/2/2%2=1 5/2/2/2=0停止 即二进制为101
6 同理6%2=0 6/2=3 6/2%2=1 6/2/2=1 6/2/2%2=1 6/2/2/2=0停止 即二进制为110
得出灵感二进制0 1个数统计规律
while(n)//n为给定数据
{ if (n%2==0) { d++; }//d为0个数
else { c++; }//c为1个数
n=n/2;
}
若将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。
int g(int n)//判断i是A or B类型 A返1 B返0
{ int d=0,c=0;
while(n)
{ if (n%2==0) { d++; }
else { c++; }
n=n/2;
} if(c>d) { return 1; }//1比0多,为A,返1
else { return 0; }//返之,为B,返0
}
关于求二进制1的个数和0的个数,我的见解就只有这么多了