看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《kinding (de)》之銘言: : → bleed1979:http://0rz.tw/iQKVb stackoverflow上的解。 11/15 05:23 這個問題很有趣,我來畫畫圖好了。(就不管什麼 char 可能不是 8 bits 之類的鳥事好了) | unsigned char b; // reverse this (8-bit) byte | b = (b * 0x0202020202ULL & 0x010884422010ULL) % 1023; @ http://0rz.tw/iQKVb b 12345678 0x0202020202ULL *_______*_______*_______*_______*_ b * 0x0202020202ULL 1234567812345678123456781234567812345678_ 0x010884422010ULL *____*___*____*___*____*___*________*____ (b * 0x0202020202ULL) & 0x010884422010ULL 1____6___2____7___3____8___4________5____ 1023 ********** ### % 1023 * ------> * 10 ((b * 0x0202020202ULL) & 0x010884422010ULL) % 1023 1____6___2____7___3____8___4________5____ 1 ------> 1 ------> 1 ------> 1 ------> 1 2 ------> 2 ------> 2 ------> 2 3 ------> 3 ------> 3 4 ------> 4 5 6 ------> 6 ------> 6 ------> 6 7 ------> 7 ------> 7 8 ------> 8 _________________________________87654321 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.30.39 ※ 編輯: Favonia 來自: 140.112.30.39 (11/16 11:39)
LPH66:推 11/16 12:31
VictorTom:推:) 11/16 23:53