可能重复:
计算32位整数中设置位数的最佳算法?
我想编写一个程序来比较两个数字得到1位数.如果我比较任意两个数字之间的位,找到二进制数在1和0中的不同位置.换句话说,异或(XOR)关系.
比如22(有10110二进制)并将它与15(有01111二进制)进行比较
第一个10110
第二个01111
结果11001
答案是25,但我想要的是3,其中有3个1和0是不同的.
这是我的代码,它只能输出素数.
#include <stdio.h>
int prime(int n){
int j;
for (j=2;j<=n/2;j++){
if((n%j)==0){
return 0;
}
else{
return 1;
}
}
}
void main(){
int i,p;
for (i=2;i<=100;i++){
p=prime(i);
if(p==1){
printf("%d \n",i);
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果是2,3,7,9,11,13,15 ....
不是2,3,5,7,11,13 ....
我做错了什么?