[C语言]求两数二进制序列不同的位

2019-11-12 作者:网络时代   |   浏览(172)

[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 =...

图片 1

[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语言]求两数二进制序列不同的位

关键词: