八月 9, 2009
» The Fraction from a Decimal

定點數運算常用於 embedded systems 中,因為大部分低階的 MCU (例如: 8051, PIC, AVR 等)開發環境雖提供浮點運算,卻是軟體模擬的,除了慢,還明顯佔用原本就少得可憐的記憶體空間。 C/C++ 語言雖無定點數運算專用語法,程式員卻可通過手動調整,有效以整數運算完成相同效果。 定點數運作的原理,簡言之,就是將原來的實數(real number)或者小數(decimal),改寫成分數(fraction):如果 x 是個含小數的實數,我們可以找來兩個整數(p, q),將它們相除,來近似原來的 x (p/q ~= x)。 實務上人們可能還會要求上述的 q 要是 2 的冪次,因為電腦處理的都是 0, 1 的二進位運算, q 表示成 2 的冪次可以達到較高的精度;另一個原因我想是許多 f/w 程式員都患了 shift 偏執症 :p 有個友人前

七月 4, 2009
» The Analog Clock

……秒針急急忙忙的去撥動每一根短棒,使它們產生意義。然後分針慢吞吞的做同樣的事,使那些短棒產生另一種意義。三種針的位置和關係不斷變更,在錶面上切割出許多角來,夾住那不可捉摸的時間。……(摘自作文七巧:P86) 算一算日子,在現任公司混吃也有九個月了。很幸運的,一進來就參與一顆 ASIC 的開發,從一開始的寫 tools 測試 FPGA 功能,後來的寫 f/w 測試 ASIC ,到最後的參與產品開發。照規劃,一開始只打算拿來秀秀圖,偶爾也秀秀時間日期。後來為了把這顆小 MCU 的能耐完全壓榨出來,前些日子我還幫它加了類比鐘(Analog Clock)。自此,相框就不再僅僅只是相框了: 想起專科的畢業專題,我實作過一組函式庫,用來執行 3D 投影及相關的座標轉換。一晃眼已經十多年了,最近為了完成的這個類比鐘,竟然連描點畫線的程式都得自己手寫……

十月 10, 2007
» Not to be Fooled by Randomness

最近抱讀了一些機率的書,突然發現這門學問還滿有趣的。除了有趣,一些基本的機率分配及常見的隨機過程都非常實用。在複習的過程,當然也要作個紀錄: Random Number Generators 如果想跑些像 Monte Carlo 這類對隨機性很要求的 simulation ,有必要好好檢視一下手邊的隨機數產生器(Random Number Generator, RNG)是否合格。 線性同餘法(Linear congruential generators, LCGs)是多數開發環境標準的 RNG。它雖可以輕快、方便地產生隨機數;不幸地,它產生的隨機數,很容易就不夠隨機,不適合用在嚴肅的場合。 對於 RNG ,我們重視的有: 演算法要簡單、計算要快速 要能通過各種隨機性測試,特定模式不可出現在我們運用的場合。 用於密碼學領域時,還要夠安全,不易被破解

biggo.com.tw

A Django site.