解決了個困擾了2天的問題,定點運算問題
更新時間:2016年06月17日 10:07:23 作者:ganxingming
本文主要講解定點運算問題,需要的朋友可以參考一下。
分母變小了,相當(dāng)于左移了
復(fù)制代碼 代碼如下:
a=1-b/c;
|b|<pow(2,23)
|c|=pow(2,26)
|b|<pow(2,23)
|c|=pow(2,26)
|a|<1
在運算個過程中,需要把該運算轉(zhuǎn)換成定點運算。
想了2天,都沒有想出怎么可以保證a的精度,因為a可能很小,如果簡單的
復(fù)制代碼 代碼如下:
a<<=8;
是無法保證a的精度的。
今天快要下班時,突然有靈機一動:
復(fù)制代碼 代碼如下:
c>>=6;
b<<=8;
a=1<<14-b/c; //相當(dāng)于 a<<14,保證了a的精度
b<<=8;
a=1<<14-b/c; //相當(dāng)于 a<<14,保證了a的精度
分子不能左移太多位,分母右移,解決問題了。
發(fā)散思維說起來很容易,做起來不容易呀!
以上就是本文的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
C++虛函數(shù)表與類的內(nèi)存分布深入分析理解
對C++ 了解的人都應(yīng)該知道虛函數(shù)(Virtual Function)是通過一張?zhí)摵瘮?shù)表(Virtual Table)來實現(xiàn)的。簡稱為V-Table。本文就將詳細講講虛函數(shù)表的原理與使用,需要的可以參考一下2022-08-08
C++中的vector使用詳解及重要部分底層實現(xiàn)
本篇文章會對vector的語法使用進行詳解,同時,還會對重要難點部分的底層實現(xiàn)進行講解,其中有vector的迭代器失效和深拷貝問題,希望本篇文章的內(nèi)容會對你有所幫助2023-07-07

