寫乙個函式返回引數二進位制中1的個數

2021-07-12 07:13:06 字數 875 閱讀 2738

寫乙個函式返回引數二進位制中1的個數

分析:(1)輸入乙個數

(2)判斷它是否為0。

(3)如果不為0,就對它進行模2取餘,模2的過程就相當於把這個數向右移除了一位,如果餘數為1,則證明移除的這一位為1,就將其記錄下來。如果餘數為0,就證明移除的這一位為0,就不記錄。

(4)經過第3步以後,對這個數進行除2取整,再進入到第2步中。如此迴圈,直到第3步中判斷為0。

注意:(1)對於負數,在記憶體中是以其補碼形式存放的。例如-1,它的二進位制中有32個1。

(2)以下方法中對於函式形參的定義方式有兩種,一種是無符號整型,一種是有符號整型。

(3)「>>」為右移運算子,>>1表示右移一位,它的意思是說將最右邊的一位移出記憶體的儲存空間裡。

方法1:

#includeint count_one_bits(unsigned int value)

value=value/2;

}return count;

}int main()

方法2:

#includeint count_one_bits(int value)

value=value>>1;

i--;

}return count;

}int main()

方法3:

#includeint count_one_bits(int value)

return count;

}int main()

本文出自 「stand out or get out」 部落格,請務必保留此出處

寫乙個函式返回引數二進位制中1的個數

寫乙個函式返回引數二進位制中1的個數 15 00001111 方法一 include include int main printf d n count system pause return0 此方法不能計算 0 的情況 2.方法二 include include int main printf ...

寫乙個函式返回引數二進位制中 1 的個數

方法一 注意 1 這種方法是採取按位於,即讓索要判斷的數和1 與,可以判斷最後一位是0還是1,然後每判斷一次 向右移動一位再判斷下一位,以此類推迴圈32次,即可知道這個數的每一位情況 include int main num num 1 沒判斷完一位,這個數向右移動1位,再判斷下一位 printf ...

寫乙個函式返回引數二進位制中 1 的個數

define crt secure no warnings include int main printf count d n count return 0 上面這段 只能統計正數的二進位制中的1的個數。存在一定的缺陷請看 如果想讓上面這個方法也可以求的負數中二進位制中1的個數 請看下面 這段 呢就...