編程實現:在32bit編程環境下,兩個int型整數的二進制碼有多少位不同

#include<stdio.h>
#include<stdlib.h>
int main()
{
 int m1, m2,c,d;
 int i =0, j = 0;
 printf("請輸入兩您想要比較的整數");
 scanf("%d%d",&m1,&m2);
 c = m1^m2;   //求m1,m2的按位異或
 for (; j < 32; j++)
 {
  d = c & 1;
  if (d == 1)
   i++;     //不同的位數
  c >>= 1;
 }
 printf("\n%d與%d在二進制位中不同的位數有:%2d位\n", m1, m2, i);
 system("pause");
 return 0;
}

本文只是在下在學習過程自己的想法,還有很多不足的地方,如果那位大神發現了問題,請您不吝賜教,如果您還有更好的方法,不妨分享分享,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章