看板 Soft_Job 關於我們 聯絡資訊
看了幾個面試問題,很納悶有需要用到嗎? 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
abccbaandy: 一個for寫出99乘法表 09/22 17:25
固定數值,直接寫成矩陣,直接拿矩陣數值比較快.(這個很常見)
crown: 用星號畫出三角型 09/22 18:46
monoceros629: 考考智力和對計算機的了解罷了 09/22 19:30
robler: 就是看你的智商 09/22 19:35
老實說,平常很少用的東西.突然問我,我可能回答不出來.
calqlus: 劇情需要 09/22 21:41
我想也是.
askacis: 餘數運算比較慢 09/22 23:01
askacis: 當然編譯器可能對餘數運算優化,但沒優化前就是比較慢 09/22 23:07
是比較慢,但是不用省那一點點時間,可讀性更重要. 因為現在的soc很強大.只要不是寫的很誇張,我想可讀性比效能還重要. 也有可能我沒遇過效能>可讀性的專案吧. 不過簡單的code optimization 還是要有一點概念.
askacis: SOC...當你在寫速度只有幾十MHz的MCU就知道差別了:) 09/23 01:45
mcu的確需要,指令幾個cycle都要看. 不過arm , mips. 除非有特殊需求. code沒有寫太差的話. 應該都還ok.
askacis: 何況bit 運算是基本ABC程度的東西,還扯不到可讀性這回事 09/23 01:47
恩. bit運算其實可以寫的很複雜. 我也寫過,老實說,很難看. 過段時間再看. 我可能需要想一下.
askacis: 應該說都已經碰到填register這層了,這些寫法應該要習慣 09/23 01:50
askacis: 寫上層AP的人少用就算了,寫FW的人要有這種基本認知才是 09/23 01:53
register讀/寫bit , 其實用不到什麼運算,只是bit判斷. 有寫過的,應該也知道不會遇到是否為3的倍數這種情形.
askacis: 其實考這題背後的原理在於你對CPU運作的原理知道多少, 09/23 02:00
askacis: 我面試人的時候,能說得出來背後的原理對我來說是加分的~ 09/23 02:02
cpu運作原理? 沒遇過這樣的專案需要知道cpu運作原理的.(ex:pipeline之類的) 也許我沒遇過這樣的吧. 其實我的疑問是,面試考這些之類的,實作上有用到嗎? 在我經手過的專案,仔細想想,有些根本非常少用,或者根本沒用. 但也有可能我遇過的專案不夠多吧
KASUGAOSAKA: 考你位元處理基本概念 09/23 09:40
askacis: 有些餘數運算會用在計算資料是否為某數整除 09/23 10:37
askacis: 然後決定是否啟動DMA,有些DMA硬體只能處理固定倍數的資 09/23 10:39
askacis: 有時這些判斷會放在ISR裡,縮短ISR佔用的時間就是你的責 09/23 10:41
askacis: 當你的ISR占的太久,影響到別人, 09/23 10:43
askacis: 短時間可能沒事,時間一長可能就會出現靈異現象~ 09/23 10:44
這點同意,所以在寫mcu時,ISR都是很簡單的處理.
askacis: Linux等OS的會提供一些api去處理, 09/23 10:47
askacis: 讓你避開這個問題,但是沒有OS的MCU,往往while(1)跑到底 09/23 10:49
askacis: 當一圈while(1)因為你的中斷佔用太多時間跑太久就會出現 09/23 10:51
askacis: 如同我前所述,因為不曉得你的工作內容是什麼,但對我寫M 09/23 10:52
askacis: MCU或是linux kernel or driver的人來說 09/23 10:53
askacis: bit運算與取餘操作其實還蠻基本的 09/23 10:54
以前寫過mcu但時間不長. 寫過audio driver,但是DMA處理就沒碰過. kernel很同意. 有時追code. 看到一堆<< , & , |. 不過有段時間沒處理過driver了.(入門級新手) 目前寫上層.
askacis: 至於其他面試的一些怪題目,有些是還蠻沒意義的~ 09/23 11:04
是啊,更有趣的是,進去後的工作,跟面試題目無關. 也不知道是考啥的? 智力? 記憶力? ※ 編輯: b6byc (61.220.139.2), 09/23/2014 11:09:30
KanoLoa: 考態度,專門刷我這種人 XD 09/23 15:04
wuliou: 以前寫MCU 連路徑運算都直接查表了 不過除了MCU其實很少 09/23 23:38
wuliou: 有那麼計較效能的環境 09/23 23:38
grantkobe: 請問一下這題有解答嗎? 照我的認知,bit運算是2的ring, 09/24 01:23
grantkobe: 應該沒辦法直接用bit operation 求出才對 09/24 01:24
grantkobe: 除非能用他來做出 x mod 3 = x-(int)(x/3)的效果 09/24 01:25