?原題:
? Write the function int bitCount(short input) that takes a short as input and
? returns an int.? The function returns the number of bits set in the input
? variable.? For instance:
? bitCount(7) --> 3
? bitCount(2543) --> 9
? bitCount(11111) --> 9
代碼:
/********************************************************************
??? created:??? 2006/06/14
??? created:??? 14:6:2006?? 16:53
??? filename:?? C:\Documents and Settings\Administrator\My Documents\近期閱讀\myTinyThing\bitCount.c
??? file path:? C:\Documents and Settings\Administrator\My Documents\近期閱讀\myTinyThing
??? file base:? bitCount
??? file ext:?? c
??? author:???? A.TNG
??? version:??? 0.0.1
???
??? purpose:??? 面試題
??????????????? Write the function int bitCount(short input) that takes a short as input and
??????????????? returns an int.? The function returns the number of bits set in the input
??????????????? variable.? For instance:
??????????????? bitCount(7) --> 3
??????????????? bitCount(2543) --> 9
??????????????? bitCount(11111) --> 9
*********************************************************************/
#include <stdio.h>
/*
?*? name: bitCount
?*? params:
?*??? input???????? [in]??????? 需要分析的 short 型數
?*? return:
?*??? 輸入參數 input 的為1的位數
?*? notes:
?*??? 計算 input 中為1的位數
?*? author: A.TNG 2006/06/14 17:00
?*/
int bitCount(short input)
{
??? int n_ret?? = 0;
??? /* 只要 input 不為0,則循環(huán)判斷 */
??? while (0 != input)
??? {
??????? /* 如果 input & 1 == 1 則表示最低位為1,反之則等于0 */
??????? if (input & 1)
??????? {
??????????? n_ret++;
??????? }
??????? input = input >> 1;
??? }
??? return n_ret;
}
/*
?*? name: main
?*? params:
?*??? none
?*? return:
?*??? 函數返回狀態(tài)給系統
?*? notes:
?*??? 系統 main 函數
?*? author: A.TNG 2006/06/14 17:04
?*/
int main()
{
??? /* 輸入需要計算的整數 */
??? int n?? = 2543;
??? /* 輸出 bitCount 的結果 */
??? printf("%d\n", bitCount((short) n));
??? /* 發(fā)送 PAUSE 命令給系統 */
??? system("PAUSE");
}