全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3828
推到 Plurk!
推到 Facebook!

江湖一點訣-8051圓周率計算技巧的真相

 
happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-05-10 10:19:40 IP:220.134.xxx.xxx 訂閱
My Log --> 江湖一點訣
godspeedlee.myweb.hinet.net/

寫給大家笑一笑...^^
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-05-10 11:11:19 IP:122.124.xxx.xxx 未訂閱
好文^_^

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-05-11 00:39:05 IP:219.70.xxx.xxx 未訂閱
小弟以前在寫 MCU 時有一些類似的用法. 給大家參考參考. 當時 chip 除法指令須 18 個指令週期, 其他指令則大多 1~2 個指令週期. 為了縮短回應時間, 於是將所有"常數"除法命令改寫為 1 乘法指令 + 1 位移指令. 如此便省了 16 個指令週期.

Ex : /10 => *13 右移 7 bit

未位移前還可利用其餘 7 bit 決定是否要作四捨五入的動作.

FYI.
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
sharkneil
一般會員


發表:27
回覆:33
積分:12
註冊:2005-01-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-07 16:30:14 IP:210.66.xxx.xxx 訂閱

===================引 用 文 章===================
小弟以前在寫 MCU 時有一些類似的用法. 給大家參考參考. 當時 chip 除法指令須 18 個指令週期, 其他指令則大多 1~2 個指令週期. 為了縮短回應時間, 於是將所有"常數"除法命令改寫為 1 乘法指令 1 位移指令. 如此便省了 16 個指令週期.

Ex : /10? => *13 右移 7 bit?

?????? 未位移前還可利用其餘 7 bit 決定是否要作四捨五入的動作.

FYI.

那這方法是如何演算出來的阿?
happosai
高階會員


發表:93
回覆:228
積分:109
註冊:2002-09-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-07 18:56:09 IP:220.134.xxx.xxx 訂閱
一樣是用近似法,X / 10 = X * 0.1

0.1 近似於 13/128,你把我網站上的程式編成 .exe 自己跑跑看就知道了,
誤差為 0.156250%(對於整數除法很夠了)。

不過其實這在數學上可以找得到證明(聽別人講的)

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-07 23:33:39 IP:219.70.xxx.xxx 未訂閱
 happosai 兄說的沒錯. 這還只是 8 bit 運算, 若為 16bit 或 32 bit 運算可以找到更近似的算法.
而 8 bit 只有 255, 單純/10 根本不會有誤差. 語法大家都會, 怎麼應用就是學問了. 江湖一點訣阿!

===================引 用 happosai 文 章===================
一樣是用近似法,X / 10 = X * 0.1

0.1 近似於 13/128,你把我網站上的程式編成 .exe 自己跑跑看就知道了,
誤差為 0.156250%(對於整數除法很夠了)。

不過其實這在數學上可以找得到證明(聽別人講的)
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
系統時間:2024-05-19 23:37:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!