[問題] 快速執行大量位元運算的方法?

看板C_and_CPP (C/C++)作者 (la8day)時間13年前 (2013/01/23 02:45), 編輯推噓4(4017)
留言21則, 8人參與, 最新討論串1/1
我想要大量做一些位元的運算 例如在不換成十進位的情況下做110 XOR 010 = 100 這類的運算 如果是Verilog就很方便 但C++目前只想到存成陣列,然後用迴圈一個個做運算 而即使是用bitset,也是要用類似陣列的操作形式吧? 雖然我不太熟bitset,但剛剛試了一下應該也沒辦法 想請問C/C++除了用迴圈硬幹 有沒有什麼適合專門做位元運算的寫法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.182.224.51

01/23 03:08, , 1F
運算元很多個? 還是要apply的運算子很多種?
01/23 03:08, 1F

01/23 03:12, , 2F
運算子只有XOR一種
01/23 03:12, 2F

01/23 03:14, , 3F
但bit數可能會很長
01/23 03:14, 3F

01/23 03:52, , 4F
bitset有做operator overloading 應該可以直接用
01/23 03:52, 4F

01/23 09:21, , 5F
拆成64bit一組, 然後用 multi-thread 去做 xor?
01/23 09:21, 5F

01/23 09:32, , 6F
cuda不知道能不能幫上忙
01/23 09:32, 6F

01/23 10:02, , 7F
幾個 keyword 參考一下: SSE2-128-bit, GMP,BitMagic lib.
01/23 10:02, 7F

01/23 10:02, , 8F
都用這個去搞,然後有 MPI 環境幾乎都可以,關鍵字是原子操
01/23 10:02, 8F

01/23 10:03, , 9F
作 (atomic) , boost / CUDA / MSVC 都有.
01/23 10:03, 9F

01/23 12:18, , 10F
天吶都沒聽過XD 我只是用g++寫個小程式而已 之後有機會試試
01/23 12:18, 10F

01/23 12:19, , 11F
另外bitset的overloading我查了Primer和網路好像找不太到
01/23 12:19, 11F

01/23 12:19, , 12F
相關寫法 可以再提示一下嗎?
01/23 12:19, 12F

01/23 13:22, , 13F
01/23 13:22, 13F

01/23 13:32, , 14F
「bit數可能會很長」 大概是怎樣的數量級?
01/23 13:32, 14F

01/23 13:34, , 15F
如果限定g++的話有懶人extension可以用
01/23 13:34, 15F

01/23 13:35, , 16F
http://0rz.tw/qbBHs 不知道效率怎樣就是
01/23 13:35, 16F

01/23 14:25, , 17F
有具體用途嗎?不然我覺得輸入輸出會更花時間
01/23 14:25, 17F

01/23 18:58, , 18F
感謝大家 後來發現bit數應該不會很長 最多也不會超過幾十
01/23 18:58, 18F

01/23 18:59, , 19F
是要解布林的線性方程 後來覺得用迴圈其實也還好
01/23 18:59, 19F

01/23 18:59, , 20F
只是在寫的時候很多迴圈看起來怕怕的以為會很久
01/23 18:59, 20F

01/23 19:25, , 21F
0/1 線性規劃? 有趣的問題 :)
01/23 19:25, 21F
文章代碼(AID): #1G_jvWCT (C_and_CPP)
文章代碼(AID): #1G_jvWCT (C_and_CPP)