程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> [C語言]求兩數二進制序列不同的位

[C語言]求兩數二進制序列不同的位

編輯:關於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");
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved