看板 Programming 關於我們 聯絡資訊
我最近有空閒 所以在做ACM的題目 其中有需要做 n /= 2的動作 我以為改成 n >>= 1 直接做shift會比較快 但是事實上卻沒有 另外要做 n % 2 == 0 的判斷 我改成 (n & 00000000000000000001) == 00000000000000000000 但是ACM跑出來的時間並沒有縮短 我一直以為計算改成位元組的 shift 或是 and 跟 or 會比較快 請問我這些觀念是不是錯誤的!!?? -- (好痛>"<)~ ( ̄ε(# ̄)☆ o# O╮o( ̄皿 ̄o) ~(看我的殺球~~!!!!) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.141.41
jlovet:因為compiler編譯成組語的時候就是這麼做的140.123.102.167 06/19 14:04
jlovet:他們發現除二的次方被的時候本來就會用shif140.123.102.167 06/19 14:05
jlovet:而不是用div140.123.102.167 06/19 14:05
Huangs:差異很微小 ACM online judge不一測得出來 218.167.6.113 06/20 06:53
bobhsiao:快慢有些是IO的關係,存起來一並輸出較快 219.85.82.131 06/20 09:36
freesamael:n & 1 == 0 就可以了,不用自己補 0...118.231.107.246 06/20 12:32
bobhsiao:開頭補0,是8進位的表示法 219.85.82.131 06/20 20:04
wowtiger:妳知道 P4 上面 add 比 shift 慢 12 倍嗎 114.44.183.139 06/28 14:16
wowtiger:阿哩 寫相反了 114.44.183.139 06/28 14:17