看板 C_and_CPP 關於我們 聯絡資訊
請問有直接計算二進制長度的語法嗎? 例如:12(10) = 1100(2) 那長度就是 4 我是有想說寫a|(2^31-1),然後再&1計算1有幾個就是它的長度 不過,是否有直接的語法可以用呢? -- 周瑜你好: 我們是荊州水軍統領的蔡瑁和張允,曹操帶領北方八十三萬大軍南下 我們假裝投降,過幾天,我們就會把他的人頭砍下來 送給你,敬請笑納 最後敬祝 閤府平安 健康快樂 金榜提名 早日康復 MerryChristmas & Happy New Year 本期大樂透名牌 1 2 3 4 5 6 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.137.179
stool100:LOG以2為底 ... 09/17 13:00
stool100:取整數 然後+1 09/17 13:01
stool100:取整數請用int 09/17 13:03
chrisjon:感謝^^ 09/17 17:40
jaw109:可以試試bitset XD 09/17 18:02
suhorng:一般都O(lgn)來算 不過 x86 系列有 BSF, BSR 指令~ 09/17 19:57
suhorng:不過我覺得 a|(2^31-1) 怪怪的? 首先^是 xor 不是指數,再 09/17 19:58
suhorng:來為什麼這樣可以計算有幾個 1? 好像跟長度沒什麼關聯 ... 09/17 19:59
suhorng:其實不用內建函式的話直接 /2, /2, /2... 算就好了 09/17 19:59
VictorTom:>> 1 :) 09/17 20:19
hilorrk:根本直接印出bits就好了吧XD 09/17 21:46
MOONRAKER:那是因為你知道 ^ 是xor,可是一般總把他當成power用 09/17 21:56
freelancer:如果用有support posix 的library 在 strings.h 裡有 09/18 00:46
freelancer:ffs 可以用 09/18 00:46
chrisjon:寫Maple習慣了,2的31次方就是2^31,它會自動轉換=v=" 09/18 05:09