2008年8月31日 星期日

IEEE-754 浮點數的表示法

為了防止忘記,又為重點考題,所以......

浮點數表示分為三個部份
S:符號,表示正負值,0為正,1為負
E:指數,基準值加上指數,單精度基準值為 [2^(8-1)]-1 = 127,倍精度基準值為 [2^(11-1)]-1 =1023
M:小數,又為精確值,小數值得正規劃,並且隱藏 MSB 的 1 (正規劃後面用例子解釋)

而又分為單精度與倍精度:單精度為32bits,倍精度為64bits
單精度 S:1bit E:8bits M:23bits
倍精度 S:1bit E:11bits M:52bits


ex. -12.625 使用 IEEE-754 單精度 表示浮點數

第一步驟:不管正負號直接將數值轉為二進制
 12.625 => 1100.101 = 1.100101 × 2^3

第二步驟:計算指數
 127+3=130 => 10000010

第三步驟:填入數值置於浮點數規格中
 S E      M
 1 10000010 100101 0000 0000 0000 0000 0
 
 *注意:1)小數部份要隱藏 MSB 的 1 ,只填入小數點之後的數值
     2)剩餘沒用到的地方補0,補足至 23bits (倍精度就補足到 52bits)

 如此一來可以將轉出來的浮點數再表示成 16 進制
 => 1100 0001 0100 1010 0000 0000 0000 0000
 => C14A0000

補充:
 1. 指數E保留0與255做為特殊用途,因此指數真正的範圍在1~254之間。
 2. 指數E與小數M的特殊用途組合如下
   E=0  M=0:表示0
   E=0  M≠0:未正規形式
   E=255 M=0:表示無限大 (配合正負號,可以表示正無限、負無限)
   E=255 M≠0:NaN (Not a Number)
 3. 浮點數精確度的問題
   由於浮點數當小數位數不足的時候會發生兩種 error
   a.進位誤差:超出表示範圍的數值,使用四捨五入產生的誤差
   b.捨去誤差:不足放入小數表示位數所剩餘的小數值,皆捨去產生的誤差
   所以為了解決這樣的誤差,只有提高小數點可存放的位數,但是相對的所佔用的容量就很大
 4. 維基百科的詳細說明 IEEE 754

2008年8月19日 星期二

蝴蝶掙扎式 vs 蝴蝶飛翔式

  睽違好幾年的夢想之一,想要把蝶式學會,在泳池裡總是有會飛的蝴蝶從眼前劃過,而始終都是行注目禮,卻自己怎樣都不會,雖然有過依樣畫葫蘆,但是姿勢節奏不對,整個就亂,即所謂的蝴蝶掙扎式了(笑),更惶談流暢度。

  已經會的三式,始終研究著該怎樣游蝶式,今年夏天想說除了讀書也是要活動活動的,畢竟唸書也要有體力,除了腦內的運動外,那就多多游泳,也是健身也是放鬆腦袋,更是想學會蝶式囉。在網路上找過各式的資料,書店也逛過,而 "蝴蝶掙扎式" 卻是在書中看到的,作者的形容真恰當,忍不住會心一笑,這也說明游得不對,整個就看不出來用飛跳的方式游了。不過最直接衝擊的就是找到了影像教學影帶,完完整整的看過教練的說明,以及練習方法。

  不論練習什麼游泳姿勢,分開手跟腳的練習是最好的方法,單獨訓練手的滑水,單獨訓練腳的海豚打水法,最後再手腳合在一起練習。在下碰到的問題點有三點。

一、打水的問題:以前海豚打水,用的力道都是只有腿的力量,可是蝶式真正的卻不是靠腳來打水,而是透過腰部,類似鞭子方式打水。

二、划水的問題:在划水的時候沒辦法將手划完水後,再將手回到向前伸展的樣子,常常還沒有回到定位就入水面了,這點後來認為是兩次的打水,產生反作用力,讓上身可以有夠長的時間,划完水後回到定位。

三、手腳配合的節奏:以前就聽過蝶式的一個循環是需要打兩次水然後划水一次,但是順序卻錯了,就今天的心得其實是 "打水一次 -> 划水 -> 打水一次",這樣的週期在週期結束跟開始的時候,就看的到連續的兩次打水,而且在划水後就要提臀,開始擺動海豚打水,不然沒有腰力,下次划水就飛不出水面來了。

"打水一次 -> 划水 -> 打水一次"是我自己想像的分解動作,如果連續的話,實際看到的是,第一次打水時就要划水,而第二次打水的時候手臂正移動至前方,為下次滑水準備。

  想起來應該有花了一個月的時間研究,每次游泳回來,就把教學影帶打開來看,到底今天什麼地方沒有游的正確,另外看看有什麼可以做練習的方式,下週再來試試,就這樣今天終於有抓到了訣竅了,有感覺到蝴蝶有在飛的樣子。另外一提的就是,不論什麼姿勢,最重要的,一開始不要貪快,一個步驟一個步驟作確實,就好像練琴的時候,越是複雜難彈奏的地方,越是要多拆成好幾的小部份,一個個部份都熟了,連續堆疊起來自然而然就熟練了。今天最重要的收穫就是 "打水一次 -> 划水 -> 打水一次",一個週期結束再起新的一個週期,自然而然的就很有蝶式的韻味了。

  體會到蝶式的今天,竟是在每次去游泳固定遊的距離(2000m)快完成的時候,才啊!突然"頓悟"了(笑),剩下500m左右的時候,好吧就再來練習還不會的蝶式,想想剛剛看到的有位前輩怎樣游的,速度也不快的一下一下來,那好,心想就來試試看,可能是自身的問題也都記住了,像是划水後要提臀,打水要用腰力,接下來的就是配合的問題了,以往划完水後就整個忘記打水,而且還只知道打水兩次划水一次,但是順序就是造成不順的原因,這時就想好吧,慢慢來,然後記住滑水完要提臀打水,就這樣,慢下節奏來,曾經獨立手腳練習過的就自然接上了,而且不會有蝴蝶掙扎式那樣飛不出水面,但是,因為不熟的方式游起來多少會相當疲累,再加上已經游過1500m,現在就只有拍兩次翅膀就累了(笑)。

  總之,已經體會該怎樣游,下次就來游看看25m,看看可不可以一趟就到(^.^)。

2008年8月17日 星期日

東方地霊殿


  來的好突然,Th10的東方風神錄才玩到Normal,就有點卡關的樣子,結果隨之而來的Th10.5東方緋想天,也只是破完Easy正要想辦法打入Normal,如今C74出來,Th11東方地霊殿正式版也跟著出來。

  在下正式 "摔" 進東方世界的是從東方風神錄,沒有像是Th08東方永夜抄
擦彈系統,而且靈擊是POWER的消耗模式,不是個別靈擊系統,不過意外的玩起來很清爽,像是重新回到原點的樣子。

  Th11
東方地霊殿改回了擦彈系統,而靈擊依然使用POWER消耗模式,而細節的部份還要仔細品味過才知道。玩過體驗版之後感覺好像比東方風神錄難度又提高了點,可能是在下的熟練度不夠,當初開始玩風神錄的時候也是一路"閃"(子彈囉 = =")過來的。

  另外重頭戲的就是ZUN的音樂,依然好的沒話說,自從開始接觸東方系列,也把前作也慢慢找到,整理收集,不論是原作或是二次創作,都很有幻想鄉的風味,在風神錄中是一路享受音樂到結尾,幾乎每首曲子都好聽,而這次
地霊殿的音樂,雖然在下還沒有拿到正式版,看是從體驗版的曲風有地穴的幽暗的感觸,在網路上找到有大大已經拿到地霊殿正式版,說是四、五、六面的音樂又會改變曲風,現在真的期待快點拿到正式版。

  聽久了神主ZUN的音樂,不免也想自己練習彈奏,不過發現到一個共通點,好聽的曲子,大多都 "有夠難" 的,尤其在十六分連奏的部份,在下的功力還真的有待加強才行,說不定哪天也可以加入東方系列的二次創作行列呢。

PS. 上海アリス幻樂団