2013-02-04 42 views
-4

無符號整數形式參數的二進制表示形式中的出現次數。unsigned int arg的二進制表示形式

例如,數量183 0b10110111有三個出現的11

有人能解釋或複雜(舉例)這是什麼意思?

+1

這是你需要寫的東西嗎?沒有像這樣的標準功能。 –

+0

歡迎來到Stack Overflow。太久之前請閱讀[常見問題]。人們傾向於僅僅詢問代碼的問題,而不是那些顯示一些真正試圖解決問題並需要一些幫助的代碼的問題。 –

+0

我認爲他貼了一個不太合適的功課題目,這並不好。但問題似乎是要求解釋問題,而不是代碼。他/她可能與「出現」一詞有語言問題。 – Gene

回答

1

當然。從0開始計數。查看每個連續的一對比特。如果他們是11,增加計數。如果他們不是,不要。

在你的榜樣10110111,連續對是

10 01 11 10 01 11 11 

三這些都是11,所以返回3.

如果需要實現這一點,最簡單的方法可能是看2個最低有效位來查看它們是否爲11.如果是,則遞增計數器。然後將整個數字轉移一位並循環。當你把所有的1全部移出數字爲0時,循環可以停止。此時計數器將保存答案。所有這些都可以在3或4行代碼中完成,您應該自己編寫這些代碼。

0

它計算在無符號整數中設置了多少位(具有重疊)。

從技術上講,對於參數的每個第i位,使用0 <= i <= 30,如果設置了i-位,並且設置了第012位,那麼您有一對夫婦。統計所有這些,你就完成了。

相關問題