位元組 1的個數 |
答題得分者是:taishyang
|
demon1042001
一般會員 ![]() ![]() 發表:14 回覆:19 積分:6 註冊:2002-06-12 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
|
demon1042001
一般會員 ![]() ![]() 發表:14 回覆:19 積分:6 註冊:2002-06-12 發送簡訊給我 |
感謝副站長,
這是解決的方式之一,但我比較希望時間複雜為O(1), O(N)感覺效率太差了,畢竟這個function要被重複執行很多次 才想說有沒有什麼數學公式(後悔數學沒學好) 以下是我目前想起來的,不過還是覺得沒有很完美 byte ByteCount(byte flag) { int count = 0; if ((flag >> 0) & 1) count ; if ((flag >> 1) & 1) count ; if ((flag >> 2) & 1) count ; if ((flag >> 3) & 1) count ; if ((flag >> 4) & 1) count ; if ((flag >> 5) & 1) count ; if ((flag >> 6) & 1) count ; if ((flag >> 7) & 1) count ; return count; } ===================引 用 taishyang 文 章=================== BYTE bitCnt = 0; if (num&0x01){ } } ShowMessage(bitCnt); |
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
這樣還不是一樣每次都要判斷8次^^?
===================引 用 demon1042001 文 章=================== 感謝副站長, 這是解決的方式之一,但我比較希望時間複雜為O(1), O(N)感覺效率太差了,畢竟這個function要被重複執行很多次 才想說有沒有什麼數學公式(後悔數學沒學好) 以下是我目前想起來的,不過還是覺得沒有很完美 byte ByteCount(byte flag) { int count = 0; if ((flag >> 0) & 1) count ; if ((flag >> 1) & 1) count ; if ((flag >> 2) & 1) count ; if ((flag >> 3) & 1) count ; if ((flag >> 4) & 1) count ; if ((flag >> 5) & 1) count ; if ((flag >> 6) & 1) count ; if ((flag >> 7) & 1) count ; return count; } ===================引 用 taishyang 文 章=================== BYTE bitCnt = 0; if (num&0x01){ } } ShowMessage(bitCnt); |
demon1042001
一般會員 ![]() ![]() 發表:14 回覆:19 積分:6 註冊:2002-06-12 發送簡訊給我 |
|
taishyang
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
google查到的[求二進制數中1的個數]
http://www.kuqin.com/algorithm/20080416/6796.html
編輯記錄
taishyang 重新編輯於 2010-04-16 17:58:54, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |