Re: [問題] 如何快速求出最左邊bit為1的位置
※ 引述《kok45 (11)》之銘言:
: ※ 引述《del680202 (HANA)》之銘言:
: : 假設今天我有一個bit 串列
: : N=010010,我想快速求出最左邊的1
: : 也就是010000
: : 如果是最右邊的話
: : 可以用 N XOR (N-1) & N 取得
: : 但是最左邊目前沒什麼概念可以解這問題
: : 有沒有高手可以指點一下
: 不考慮
: 記憶體問題的話
: table lookup 應該蠻快的
可以試試看asm的語法:
inline int get_highest_bit_index(int x) {
int y;
asm ( "\tbsr %1, %0\n" : "=r"(x) : "r" (y));
return y;
}
是用bsr指令做的,也就是find bit set reverse
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.251.224.138
推
10/23 14:33, , 1F
10/23 14:33, 1F
→
10/23 14:33, , 2F
10/23 14:33, 2F
→
10/23 14:40, , 3F
10/23 14:40, 3F
推
10/23 14:47, , 4F
10/23 14:47, 4F
推
10/23 17:17, , 5F
10/23 17:17, 5F
推
10/23 17:17, , 6F
10/23 17:17, 6F
→
10/23 17:18, , 7F
10/23 17:18, 7F
→
10/23 17:18, , 8F
10/23 17:18, 8F
→
10/23 17:21, , 9F
10/23 17:21, 9F
→
10/24 00:29, , 10F
10/24 00:29, 10F
推
10/24 00:39, , 11F
10/24 00:39, 11F
→
10/24 00:40, , 12F
10/24 00:40, 12F
→
10/24 00:41, , 13F
10/24 00:41, 13F
→
10/24 01:22, , 14F
10/24 01:22, 14F
→
10/24 02:04, , 15F
10/24 02:04, 15F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):