乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      給MicroBlocks增加冪運(yùn)算

       新用戶5228KeDY 2023-01-01 發(fā)布于北京

      MicroBlocks里面全是整數(shù)運(yùn)算。

      很久很久以前我實(shí)在無法理解這件事:為什么一個很優(yōu)秀的架構(gòu),竟然屏蔽了浮點(diǎn)運(yùn)算?用起來實(shí)在是不方便。再再再后來的時候,仔細(xì)琢磨MicroBlocks的信仰和主張,感覺還是很有道理的:從傳感器采集來的信息和數(shù)據(jù),哪有什么浮點(diǎn)數(shù)?全部都是整數(shù)。

      所以在MicroBlocks里面,加減乘除、求余甚至十六進(jìn)制、位運(yùn)算等都出現(xiàn)了,唯獨(dú)沒有開根號、正余弦之類的運(yùn)算。而且,如果去閱讀miscPrims.c,會發(fā)現(xiàn)作者不但寫了Sine函數(shù),而且還導(dǎo)出了sin函數(shù),但就是在IDE里面不顯式提供這種涉及浮點(diǎn)的運(yùn)算。在作者實(shí)現(xiàn)的Sine函數(shù)里面,能看到輸入?yún)?shù)被放大了100倍,返回值則被放大了16384倍。

      為什么是16384呢?因?yàn)?span style="cursor:pointer;">就是16384,把第14位給符號位,那么精度能達(dá)到13個bit,作者就這么想的。

      既然這樣,乘冪運(yùn)算也用不著非得在浮點(diǎn)數(shù)層面上運(yùn)算完了再返回了,只要引入一個最最最最最必要的函數(shù),就能解決所有的乘冪運(yùn)算;這個最最最最最必要的函數(shù),就是——

      **以2為底x的對數(shù),記為**

      也就是,引入以2為底的對數(shù)后,一切乘冪運(yùn)算都變成二進(jìn)制位運(yùn)算了。例如,我們要計(jì)算,那么它總可以被換成,然后把的最鄰近整數(shù)拿到,再移位就行了,也就是

      這么做的缺點(diǎn),是一旦返回值比較大的時候,誤差也會很大。但那可以通過放縮x或y減輕這個影響。

      先試驗(yàn)著,暫時不碰pow。實(shí)際MicroBlocks里面也沒啥需要的運(yùn)算。

      計(jì)算1.5的平方,得到2,實(shí)際應(yīng)為2.25。

      2.7的平方,得到8,實(shí)際應(yīng)為7.29。還行,將就可用。

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多