[問題]請問哪個是x*7 最快的implement方法

看板C_and_CPP作者 (~影~)時間7年前 (2016/08/18 14:40), 編輯推噓17(17025)
留言42則, 28人參與, 最新討論串1/1
最近被問到這題: 以下哪一個是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

08/18 15:00, , 1F
看用哪個Compiler
08/18 15:00, 1F

08/18 15:12, , 2F
(2)字元數最少 最佳化開下去三個都一樣
08/18 15:12, 2F

08/18 15:31, , 3F
我會選三 (我猜) 1.六個加法器 2.乘法器 (不對恕不負責)
08/18 15:31, 3F

08/18 15:33, , 4F
3的答案是錯的
08/18 15:33, 4F

08/18 15:39, , 5F
3 有可能會ov
08/18 15:39, 5F

08/18 16:23, , 6F
3) x<<(3-x)
08/18 16:23, 6F

08/18 16:51, , 7F
lea eax,[eax*7]
08/18 16:51, 7F

08/18 17:21, , 8F
更想知道快了幾個 us?
08/18 17:21, 8F

08/18 17:31, , 9F
看cpu,有的ㄧ
08/18 17:31, 9F

08/18 17:31, , 10F
個指令就結束
08/18 17:31, 10F

08/18 18:21, , 11F
x沒限定型別嗎?
08/18 18:21, 11F

08/18 18:48, , 12F
https://godbolt.org/g/8sK14l 可以自己試試看
08/18 18:48, 12F

08/18 19:02, , 13F
住手啊!浮點數不可以隨便 << 啊!
08/18 19:02, 13F

08/18 19:13, , 14F
想說的上面都說了 x的型別 硬體所給的指令集 這兩個是重
08/18 19:13, 14F

08/18 19:13, , 15F
08/18 19:13, 15F

08/18 19:17, , 16F
看要怎樣的快,寫得快的話2F正解XD
08/18 19:17, 16F

08/18 19:52, , 17F
這是一線design house 目前軟韌的筆試題目,一模一樣
08/18 19:52, 17F

08/18 19:54, , 18F
,一字不漏記出來的,題目就是這樣,請問各位高手有
08/18 19:54, 18F

08/18 19:54, , 19F
有甚麼想法答案嗎?謝謝
08/18 19:54, 19F

08/18 20:10, , 20F
先只考慮 signed 整數 同時硬體在 x86 上?
08/18 20:10, 20F

08/18 20:53, , 21F
一線的design house不會operator precedence...?
08/18 20:53, 21F

08/18 21:00, , 22F
題目真的沒再寫甚麼,就是一個筆試選擇題而已
08/18 21:00, 22F

08/18 22:05, , 23F
如果小學開始教C的話,這種沒腦題目就會常看到
08/18 22:05, 23F

08/19 04:25, , 24F
最快的implement實作方法就是2啊,x*7實作很快不是嗎
08/19 04:25, 24F

08/19 04:25, , 25F
XD
08/19 04:25, 25F

08/19 05:55, , 26F
如果x是浮點數的話1和2也不一樣啊XD
08/19 05:55, 26F


08/19 06:07, , 28F
float的話 4.701983e-39 1和2也會不一樣
08/19 06:07, 28F

08/19 09:56, , 29F
一線不知 一線半的design house裏也是有人不會寫程式的
08/19 09:56, 29F

08/19 11:48, , 30F
假設是int x;
08/19 11:48, 30F

08/19 14:59, , 31F
3 的答案是錯的, 你被騙惹
08/19 14:59, 31F

08/19 23:38, , 32F
如果是寫分位的話其實不太會用浮點數
08/19 23:38, 32F

08/20 11:22, , 33F
2 吧,就算硬體沒支援 compiler 也能幫你轉的
08/20 11:22, 33F

08/21 12:51, , 34F
覺得1跟2編譯器都會自動幫忙最佳化…
08/21 12:51, 34F

08/24 02:21, , 35F
3的優先權QQ
08/24 02:21, 35F

08/24 14:54, , 36F
3是什麼寫法
08/24 14:54, 36F

08/25 02:03, , 37F
個人覺得,這三種對編譯器是等價的 XD
08/25 02:03, 37F

08/25 13:00, , 38F
0.2秒的時間選(2),丟進編譯器最佳化後三種都一樣
08/25 13:00, 38F

08/25 13:00, , 39F
選最短的寫就好XD
08/25 13:00, 39F

08/29 12:17, , 40F
請問大大 出去工作需要會(3)這種寫法嗎QQ
08/29 12:17, 40F

08/29 13:27, , 41F
如果你是指 x<<3-x 的話,出去工作不需要錯誤的寫法謝謝
08/29 13:27, 41F

08/29 13:28, , 42F
該加的括號就要加,不要自作聰明隨便省,括號又不用錢
08/29 13:28, 42F
文章代碼(AID): #1NjLXYj4 (C_and_CPP)