<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > 嵌入式C語(yǔ)言里的土豪們之除法與移位

嵌入式C語(yǔ)言里的土豪們之除法與移位

作者:jobs 時(shí)間:2013-10-22 來(lái)源:電子產(chǎn)品世界 收藏

  這個(gè)詞用在接下來(lái)要出場(chǎng)的再合適不過(guò)了。他們在里占盡了奢華,但是畢竟我們更需要一個(gè)節約型的微生態(tài)環(huán)境。在這里簡(jiǎn)單給大家分析一下編程時(shí)用到的。

本文引用地址:http://dyxdggzs.com/article/182359.htm

  

  微處理器里可算是一個(gè)消耗大戶(hù),復雜的實(shí)現方式不僅占用了大師寶貴的計算時(shí)間而且精度有限情況下占用了大片的RAM。因此,常常在各類(lèi)文章里看到,編程人員應該使用右移運算來(lái)代替除法。這個(gè)右移方法沒(méi)有問(wèn)題,也確實(shí)能提高微處理器的計算能力,節省處理時(shí)間。但是,我們必須要注意到,這種方式只適用于整數運算的2的倍數的除法,即除以2、4、8、16等數值?!氨M量使用右移來(lái)替代除法”這個(gè)說(shuō)法,我是不贊成的。主要因為目前的編程環(huán)境都可以?xún)?yōu)化,像這種以2的倍數的除法,編譯器如果認為運算要好于除法,那么其就會(huì )自覺(jué)地編譯成為運算,而無(wú)須用戶(hù)干預。

  這里我們再假設一種情況:我們在進(jìn)行一次數據采集處理,每組數據共16個(gè),然后我們通過(guò)迭代的方式將這16個(gè)數據求和,然后,再右移4位(除以16)??墒?,也許這里就為我們日后的更新程序埋一下了個(gè)重大隱患。恰巧我們求和的迭代次數是通過(guò)一個(gè)#define來(lái)定義的,而某次采集我們不需要16個(gè)數據,而是15個(gè),我們將其更新為15。這樣,我們就不得不再重新設計、編寫(xiě)我們的程序——將無(wú)聊的移位全部換成除法。當然,如果我們沒(méi)有意識到這次求平均的除數是移位4次的問(wèn)題,那么,15個(gè)數據將仍然被除以16以求平均,結果可想而知。

  用移位操作時(shí)用移位,用除法是就是除法

  軟件的各種bug,有些是來(lái)自原作者,而更多的是來(lái)自那些對程序的更新、維護、移植時(shí)所造成的。因此,軟件代碼的應該有較強的可讀性與良好的可移植性。除非是那些特殊的函數與結構自己來(lái)搞定,大部分的優(yōu)化還是交給編譯器去做吧!

 

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程




評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>