# 2024q1 Homework5 (assessment) contributed by < [dcciou](https://github.com/dcciou) > # 因為自動飲料機而延畢的那一年 作者遇到的問題跟我以前玩過的東西所遇到的問題蠻類似的,尤其是鐵工廠那段,當初也是等到天荒地老受不了改成自己弄。不僅僅是機械製造,任何以實體為最終成果的專案都有著令人又愛又恨的特點:紙上做起來感覺自己是天才,真的要搞成品的時候才發現自己是智障,原本理想的計畫做到最後只剩最簡單的功能,但這就是物質世界有趣的地方。找店家要數據那段,雖然他輕描淡寫的帶過,但個人經驗卻是刻骨銘心,就算告知店家自己是學生,數據是為了課程使用,甚至拿出證明文件,一但出了校門,基本上都會拒絕提供,最後只能乖乖找學餐阿姨。 另外感同身受的就是成本控制,窮學生永遠的痛。 軟體開發部分,以前只做過 line app,硬體也只是一片樹梅派,這部分沒有太多辛酸史。 電路部分,也就偶爾銲銲玩具的程度。 名言佳句的部分,大概是等價交換最有感觸了吧,健身多年,都是犧牲了什麼來達成什麼,完全可以理解。 # 專題簡述 ## netfilter 儘管 adblocker ultimate 已經夠方便,但有些把廣告偽裝成貼文的形式仍然難以阻擋,另外擋 yt 廣告時,有時會需要重新整理一次才能撥放影片,蠻令人不愉快的。 :::danger 注意書寫規範! ::: ## 重做 lab0 並彙整學員成果 ## 重做 fibdrv 並彙整學員成果 --- IEEE 754, float (single precision) 7.0 => 0 10000001 11000000000000000000000 8+23 11.0 => 11為正數, 故第一位為 0 轉二進制 = 1011 -> 1.011 * 2^3 故真實指數部分=3,偏移量 = 127(127表示指數為0的情況),故指數部分 = 127+3 =130,再轉成二進制 = 10000010 ,尾數部分共23碼,省略前導1 也就是剩 011 ,其餘位數填0 = 01100000000000000000000整合得: 0 10000010 01100000000000000000000 假設要算-0.125 = -1/8,二進位= -(2^-3) = -0.001,符號位=1﹑指數位 = -3+127 = 124 => 01111100, 尾數全為0 ,得=> 1 01111100 00000000000000000000000 遇到無法整除的數字如: -0.137,則不斷乘2並取其整數位,取完後將剩下的值繼續乘/取,直到精度足夠為止(ex:單精度取到23位) = −0.00100011100001010001111 = −1.00011100001010001111×2^−3 ex:取到第三次時: 0.137 * 2^3 = 1.096,則取1,剩.096繼續取 Q: 既然要往前移三位,幹嘛不多取三位填滿尾數 Q:如果看到二進制怎麼轉回來 A(暫):先把尾數補1,指數部分-127,後根據正負決定進/退位(ex:.011->1.011, 130-127=3 ->1011 -> 11 ),再根據對應的次方數乘一乘加起來 Q:如果小到 2^-127以下怎麼辦 Q:如果改雙精度呢 A:偏移量改成1023 浮點數 * 10 怎麼算 拆成 *8*1.25,* 8直接指數+3,1.25加回去(x+0.25x,如果有溢位再加到指數部分) ex 7*10 = (7 * 1.25)*8 => 1.11+0.00111 = 10.0011 = 1.00011 * 2 ``` 轉換過程 教材不懂的地方,逐段逐行逐字 誠實面對自己 浮沙上面蓋高塔 5 月 16 日晚間問答,浮點數運算 ``` # 參考資料 https://hackmd.io/@czPKboGUQZi6-txq9HcDqw/BkzftBYAv