作者:
b6byc (oopp)
2014-09-22 17:18:46看了幾個面試問題,很納悶有需要用到嗎?
ex:用bit operation去判斷是否為3的倍數.
跟我實際平常用的 if(0 == i%3)
不知道考這個的用意是?
ps: 實際工作時 , 通常是在register判斷意義時會用到.
很簡單地看特定bit的值 , 也不用特地在運算中使用bit operation.
作者:
crown (Crown)
2014-09-22 18:46:00用星號畫出三角型
作者:
robler (章魚丸)
2014-09-22 19:35:00就是看你的智商
作者:
calqlus (白夢の繭)
2014-09-22 21:41:00劇情需要
作者:
askacis (ASKA)
2014-09-22 23:01:00餘數運算比較慢當然編譯器可能對餘數運算優化,但沒優化前就是比較慢SOC...當你在寫速度只有幾十MHz的MCU就知道差別了:)何況bit 運算是基本ABC程度的東西,還扯不到可讀性這回事應該說都已經碰到填register這層了,這些寫法應該要習慣寫上層AP的人少用就算了,寫FW的人要有這種基本認知才是其實考這題背後的原理在於你對CPU運作的原理知道多少,我面試人的時候,能說得出來背後的原理對我來說是加分的~
作者:
askacis (ASKA)
2014-09-23 10:37:00有些餘數運算會用在計算資料是否為某數整除然後決定是否啟動DMA,有些DMA硬體只能處理固定倍數的資有時這些判斷會放在ISR裡,縮短ISR佔用的時間就是你的責當你的ISR占的太久,影響到別人,短時間可能沒事,時間一長可能就會出現靈異現象~Linux等OS的會提供一些api去處理,讓你避開這個問題,但是沒有OS的MCU,往往while(1)跑到底當一圈while(1)因為你的中斷佔用太多時間跑太久就會出現如同我前所述,因為不曉得你的工作內容是什麼,但對我寫MMCU或是linux kernel or driver的人來說bit運算與取餘操作其實還蠻基本的至於其他面試的一些怪題目,有些是還蠻沒意義的~
作者:
KanoLoa (卡)
2014-09-23 15:04:00考態度,專門刷我這種人 XD
作者:
wuliou (wuliou)
2014-09-23 23:38:00以前寫MCU 連路徑運算都直接查表了 不過除了MCU其實很少有那麼計較效能的環境
作者: grantkobe (grantkobe) 2014-09-24 01:23:00
請問一下這題有解答嗎? 照我的認知,bit運算是2的ring,應該沒辦法直接用bit operation 求出才對除非能用他來做出 x mod 3 = x-(int)(x/3)的效果