看板 C_and_CPP 關於我們 聯絡資訊
最近被問到這題: 以下哪一個是x*7最快的implement方法 (1)x+x+x+x+x+x+x (2)x*7 (3)x<<3-x 我覺得是(3),但不太確定,請問各位高手有甚麼想法,謝謝。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.28.201 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1471502434.A.B44.html
johnlinvc: 看用哪個Compiler 08/18 15:00
azureblaze: (2)字元數最少 最佳化開下去三個都一樣 08/18 15:12
lucky1lk: 我會選三 (我猜) 1.六個加法器 2.乘法器 (不對恕不負責) 08/18 15:31
Caesar08: 3的答案是錯的 08/18 15:33
EdisonX: 3 有可能會ov 08/18 15:39
HolyBugTw: 3) x<<(3-x) 08/18 16:23
stupid0319: lea eax,[eax*7] 08/18 16:51
descent: 更想知道快了幾個 us? 08/18 17:21
johnpage: 看cpu,有的ㄧ 08/18 17:31
johnpage: 個指令就結束 08/18 17:31
bdvstg: x沒限定型別嗎? 08/18 18:21
FRAXIS: https://godbolt.org/g/8sK14l 可以自己試試看 08/18 18:48
Schottky: 住手啊!浮點數不可以隨便 << 啊! 08/18 19:02
chuegou: 想說的上面都說了 x的型別 硬體所給的指令集 這兩個是重 08/18 19:13
chuegou: 點 08/18 19:13
Frozenmouse: 看要怎樣的快,寫得快的話2F正解XD 08/18 19:17
j7210429: 這是一線design house 目前軟韌的筆試題目,一模一樣 08/18 19:52
j7210429: ,一字不漏記出來的,題目就是這樣,請問各位高手有 08/18 19:54
j7210429: 有甚麼想法答案嗎?謝謝 08/18 19:54
FRAXIS: 先只考慮 signed 整數 同時硬體在 x86 上? 08/18 20:10
Caesar08: 一線的design house不會operator precedence...? 08/18 20:53
j7210429: 題目真的沒再寫甚麼,就是一個筆試選擇題而已 08/18 21:00
wtchen: 如果小學開始教C的話,這種沒腦題目就會常看到 08/18 22:05
TobyH4cker: 最快的implement實作方法就是2啊,x*7實作很快不是嗎 08/19 04:25
TobyH4cker: XD 08/19 04:25
PkmX: 如果x是浮點數的話1和2也不一樣啊XD 08/19 05:55
PkmX: float的話 4.701983e-39 1和2也會不一樣 08/19 06:07
MOONRAKER: 一線不知 一線半的design house裏也是有人不會寫程式的 08/19 09:56
j7210429: 假設是int x; 08/19 11:48
Ebergies: 3 的答案是錯的, 你被騙惹 08/19 14:59
joefaq: 如果是寫分位的話其實不太會用浮點數 08/19 23:38
johnjohnlin: 2 吧,就算硬體沒支援 compiler 也能幫你轉的 08/20 11:22
yea107: 覺得1跟2編譯器都會自動幫忙最佳化… 08/21 12:51
BoXeX: 3的優先權QQ 08/24 02:21
rareone: 3是什麼寫法 08/24 14:54
Hazukashiine: 個人覺得,這三種對編譯器是等價的 XD 08/25 02:03
ArcherState: 0.2秒的時間選(2),丟進編譯器最佳化後三種都一樣 08/25 13:00
ArcherState: 選最短的寫就好XD 08/25 13:00
AlphaSC: 請問大大 出去工作需要會(3)這種寫法嗎QQ 08/29 12:17
Schottky: 如果你是指 x<<3-x 的話,出去工作不需要錯誤的寫法謝謝 08/29 13:27
Schottky: 該加的括號就要加,不要自作聰明隨便省,括號又不用錢 08/29 13:28