程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 統計32位數值的二進制中1的個數 代碼

統計32位數值的二進制中1的個數 代碼

編輯:關於C語言
 

該例子說明幾個問題

    1. 局部變量定義時,一定要初始化。整型=0, 指針=NULL;     2. scanf("%x", &val); %x 表示從鍵盤中輸入的字符,按十六進制保存到val變量中。        scanf("%d", &val); %d 表示從鍵盤中輸入的字符,按十進制保存到val變量中。 ********************************************************************/
#include <stdio.h>
 
 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;}

 

/ 輸入要統計的32位數值的十六進制 val = 0x5ce6 0x5ce6 的二進制中1的個數為 9 Press any key to continue

 

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