# 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