線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1450
推到 Plurk!
推到 Facebook!

位元組 1的個數

答題得分者是:taishyang
demon1042001
一般會員


發表:14
回覆:19
積分:6
註冊:2002-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-04-14 17:10:38 IP:140.122.xxx.xxx 訂閱
可能已經有資料,但我想不出關鍵字可以search

目的是在灰階的圖像處理

000 0 => 0
001 1 => 1
010 2 => 1
011 3 => 2
100 4 => 1
101 5 => 2
110 6 => 2
111 7 => 3
(舉例,8bits也能適用)
我希望取得byte裡1的個數,(即=> 的數字)
我想不出用什麼簡單的數學式子取得
又不想用列舉直接對映

感恩
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-04-14 18:00:23 IP:122.116.xxx.xxx 訂閱
BYTE bitCnt = 0;
if (num&0x01){
}
}
ShowMessage(bitCnt);

demon1042001
一般會員


發表:14
回覆:19
積分:6
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-04-16 09:48:49 IP:140.122.xxx.xxx 訂閱
感謝副站長,
這是解決的方式之一,但我比較希望時間複雜為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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-04-16 15:04:03 IP:122.116.xxx.xxx 訂閱
這樣還不是一樣每次都要判斷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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-04-16 17:25:30 IP:140.122.xxx.xxx 訂閱
對呀...其實跟你的是一樣的呀

所以才說不完美

看有沒有一次就算出來的
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-04-16 17:57:08 IP:122.116.xxx.xxx 訂閱
google查到的[求二進制數中1的個數]
http://www.kuqin.com/algorithm/20080416/6796.html


編輯記錄
taishyang 重新編輯於 2010-04-16 17:58:54, 註解 無‧
系統時間:2024-04-26 19:46:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!