該例子說明幾個問題
1. 局部變量定義時,一定要初始化。整型=0, 指針=NULL; 2. scanf("%x", &val); %x 表示從鍵盤中輸入的字符,按十六進制保存到val變量中。 scanf("%d", &val); %d 表示從鍵盤中輸入的字符,按十進制保存到val變量中。 ********************************************************************/#include <stdio.h>/ 輸入要統計的32位數值的十六進制 val = 0x5ce6 0x5ce6 的二進制中1的個數為 9 Press any key to continue
int f(int data){ int i = 0; int tmp = 0; int changecnt = 0; for (i = 0; i < 32; i++) { tmp = data; tmp = tmp >> i; if ((tmp & 1) == 1) { changecnt++; } } return changecnt;}
int main(void){ int val = 0;
printf("輸入要統計的32位數值的十六進制 val = 0x"); scanf("%x", &val);
printf("0x%x 的二進制中1的個數為 %d\n", val, f(val));
return 0;}