楼主:
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)的效果