[閒聊] 常見面試的問題真的平常會用嗎?

看板Soft_Job (軟體人)作者 (oopp)時間11年前 (2014/09/22 17:18), 11年前編輯推噓17(17015)
留言32則, 10人參與, 最新討論串1/1
看了幾個面試問題,很納悶有需要用到嗎? ex:用bit operation去判斷是否為3的倍數. 跟我實際平常用的 if(0 == i%3) 不知道考這個的用意是? ps: 實際工作時 , 通常是在register判斷意義時會用到. 很簡單地看特定bit的值 , 也不用特地在運算中使用bit operation. -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.220.139.2 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1411377529.A.3E3.html ※ 編輯: b6byc (61.220.139.2), 09/22/2014 17:20:31

09/22 17:25, , 1F
一個for寫出99乘法表
09/22 17:25, 1F
固定數值,直接寫成矩陣,直接拿矩陣數值比較快.(這個很常見)

09/22 18:46, , 2F
用星號畫出三角型
09/22 18:46, 2F

09/22 19:30, , 3F
考考智力和對計算機的了解罷了
09/22 19:30, 3F

09/22 19:35, , 4F
就是看你的智商
09/22 19:35, 4F
老實說,平常很少用的東西.突然問我,我可能回答不出來.

09/22 21:41, , 5F
劇情需要
09/22 21:41, 5F
我想也是.

09/22 23:01, , 6F
餘數運算比較慢
09/22 23:01, 6F

09/22 23:07, , 7F
當然編譯器可能對餘數運算優化,但沒優化前就是比較慢
09/22 23:07, 7F
是比較慢,但是不用省那一點點時間,可讀性更重要. 因為現在的soc很強大.只要不是寫的很誇張,我想可讀性比效能還重要. 也有可能我沒遇過效能>可讀性的專案吧. 不過簡單的code optimization 還是要有一點概念.

09/23 01:45, , 8F
SOC...當你在寫速度只有幾十MHz的MCU就知道差別了:)
09/23 01:45, 8F
mcu的確需要,指令幾個cycle都要看. 不過arm , mips. 除非有特殊需求. code沒有寫太差的話. 應該都還ok.

09/23 01:47, , 9F
何況bit 運算是基本ABC程度的東西,還扯不到可讀性這回事
09/23 01:47, 9F
恩. bit運算其實可以寫的很複雜. 我也寫過,老實說,很難看. 過段時間再看. 我可能需要想一下.

09/23 01:50, , 10F
應該說都已經碰到填register這層了,這些寫法應該要習慣
09/23 01:50, 10F

09/23 01:53, , 11F
寫上層AP的人少用就算了,寫FW的人要有這種基本認知才是
09/23 01:53, 11F
register讀/寫bit , 其實用不到什麼運算,只是bit判斷. 有寫過的,應該也知道不會遇到是否為3的倍數這種情形.

09/23 02:00, , 12F
其實考這題背後的原理在於你對CPU運作的原理知道多少,
09/23 02:00, 12F

09/23 02:02, , 13F
我面試人的時候,能說得出來背後的原理對我來說是加分的~
09/23 02:02, 13F
cpu運作原理? 沒遇過這樣的專案需要知道cpu運作原理的.(ex:pipeline之類的) 也許我沒遇過這樣的吧. 其實我的疑問是,面試考這些之類的,實作上有用到嗎? 在我經手過的專案,仔細想想,有些根本非常少用,或者根本沒用. 但也有可能我遇過的專案不夠多吧

09/23 09:40, , 14F
考你位元處理基本概念
09/23 09:40, 14F

09/23 10:37, , 15F
有些餘數運算會用在計算資料是否為某數整除
09/23 10:37, 15F

09/23 10:39, , 16F
然後決定是否啟動DMA,有些DMA硬體只能處理固定倍數的資
09/23 10:39, 16F

09/23 10:41, , 17F
有時這些判斷會放在ISR裡,縮短ISR佔用的時間就是你的責
09/23 10:41, 17F

09/23 10:43, , 18F
當你的ISR占的太久,影響到別人,
09/23 10:43, 18F

09/23 10:44, , 19F
短時間可能沒事,時間一長可能就會出現靈異現象~
09/23 10:44, 19F
這點同意,所以在寫mcu時,ISR都是很簡單的處理.

09/23 10:47, , 20F
Linux等OS的會提供一些api去處理,
09/23 10:47, 20F

09/23 10:49, , 21F
讓你避開這個問題,但是沒有OS的MCU,往往while(1)跑到底
09/23 10:49, 21F

09/23 10:51, , 22F
當一圈while(1)因為你的中斷佔用太多時間跑太久就會出現
09/23 10:51, 22F

09/23 10:52, , 23F
如同我前所述,因為不曉得你的工作內容是什麼,但對我寫M
09/23 10:52, 23F

09/23 10:53, , 24F
MCU或是linux kernel or driver的人來說
09/23 10:53, 24F

09/23 10:54, , 25F
bit運算與取餘操作其實還蠻基本的
09/23 10:54, 25F
以前寫過mcu但時間不長. 寫過audio driver,但是DMA處理就沒碰過. kernel很同意. 有時追code. 看到一堆<< , & , |. 不過有段時間沒處理過driver了.(入門級新手) 目前寫上層.

09/23 11:04, , 26F
至於其他面試的一些怪題目,有些是還蠻沒意義的~
09/23 11:04, 26F
是啊,更有趣的是,進去後的工作,跟面試題目無關. 也不知道是考啥的? 智力? 記憶力? ※ 編輯: b6byc (61.220.139.2), 09/23/2014 11:09:30

09/23 15:04, , 27F
考態度,專門刷我這種人 XD
09/23 15:04, 27F

09/23 23:38, , 28F
以前寫MCU 連路徑運算都直接查表了 不過除了MCU其實很少
09/23 23:38, 28F

09/23 23:38, , 29F
有那麼計較效能的環境
09/23 23:38, 29F

09/24 01:23, , 30F
請問一下這題有解答嗎? 照我的認知,bit運算是2的ring,
09/24 01:23, 30F

09/24 01:24, , 31F
應該沒辦法直接用bit operation 求出才對
09/24 01:24, 31F

09/24 01:25, , 32F
除非能用他來做出 x mod 3 = x-(int)(x/3)的效果
09/24 01:25, 32F
文章代碼(AID): #1K7-bvFZ (Soft_Job)
文章代碼(AID): #1K7-bvFZ (Soft_Job)