[C语言]求两数二进制序列不同的位
1.模除实现:
#include<stdio.h>
int main()
{
int m, n, i, x, y ,count=0;
printf("请输入m,n:");
scanf_s("%d%d", &m, &n);
for (i = 31; i >= 0; i--)
{
x = m % 2;
m = m / 2;
y = n % 2;
n = n / 2;
if (x != y) //通过循环比较每一位是否相等
{
count++;
}
}
printf("不同的bit位有%d个n",count);
system("pause");
return 0;
}
2.移位运算实现:
#include<stdio.h>
int main()
{
int m, n;
int i=32,count=0;
printf("请输入m,n:");
scanf_s("%d%d", &m, &n);
int j = 0;
while (i)
{
int a, b;
a = ((m >>j)& 1); //右移一位和1相与,再比较
b = ((n >>j)& 1);
if (a != b)
{
count++;
}
j++;
i--;
}
printf("不同的bit位有%d个n", count);
system("pause");
}
http://www.bkjia.com/Cyy/1064033.htmlwww.bkjia.comtruehttp://www.bkjia.com/Cyy/1064033.htmlTechArticle[C语言]求两数二进制序列不同的位 1.模除实现: #includestdio.h int main(){ int m, n, i, x, y ,count=0; printf(请输入m,n:); scanf_s(%d%d, m, n); for (i = 31; i =...
[plain]
#include <stdio.h>
int recursion(int m, int n);
int main()
{
int m;
int n;
int result;
printf("please enter m=");
scanf("%d", &m);
printf("please enter n=");
scanf("%d", &n);
result=recursion(m, n);
printf("%d^%d==%dn", m, n, result);
return 0;
}
int recursion(int m, int n) //递归
{
int sum;
if(n==1)
{
sum=m;
}
else if(n==2)
{
sum=m*m;
}
else
{
if(n%2==0)
{
sum=recursion(m, n-2)*recursion(m, 2);
}
else
{
sum=recursion(m, n-1)*recursion(m, 1);
}
}
return sum;
}
#include <stdio.h>
int recursion(int m, int n);
int main()
{
int m;
int n;
int result;
printf("please enter m=");
scanf("%d", &m);
printf("please enter n=");
scanf("%d", &n);
本文由澳门新葡亰网址大全发布于网络时代,转载请注明出处:[C语言]求两数二进制序列不同的位
关键词: