2025年11月26日 星期三

 IEEE754浮點數規格再理解

浮點運算愛會當預測:意思是無論用啥物硬體軟體來做運算,結果攏愛相仝。1985進前就是各廠有家己的方式-(標準),造成無法度預測。閣包括NaN、$\pm\infty$、-0等等。 

指數11位無正負之分,為啥物?因為用偏移值$e-1023$。也就是講 $e$若是0,本身就是$2^{-1023}$囉。 

毋著,是$2^{-1022}$才著,因為規定subnormalized是欲偎上小的正數$1.f*2^{1-1023}$,指數$e$ 若是0,因為無引導的1,所以上大的subnormalized值愛偎上細的normalized值,當然愛規定做-1022次方。這毋是錯誤,嘛毋是bug,欲予小數袂突然變做0。

mantissa 就是有效數,這馬叫做significand。


2024年9月1日 星期日

javascript prototype chain

Function 是基本類,綴遐開始生出 Func(),繼來生出 func,這已經是物件了。Function.prototype等於是Function.__proto__,型態是function。生出來的Func()的prototype其實就是物件型態 object。Function.prototype內定是{ } function,而且無法度修改。Func.prototype是程式設計主要目的,欲修改的所在。Func.__proto__是指向來源,作用會使改。Function.__proto__內定是空 function { },內面的 .__proto__ 指向 null prototype,閣下一層才是null,攏總下跳 3 層才到 null。Object.__proto__ 等於是 Function.prototype,嘛是function 型態,所以Object.prototype 是 Function.prototype 生出來吔是物件而且無法度修改,相仝跳 3 層才到 null。Object.constructor === Function ,答案是 true ,有 .constructor 才會使用 new 產生後代,佇Object 有用 new 或者無根本無差。

2024年3月17日 星期日

C^2 複數2維向量映射巴拿赫球面

 巴拿赫球面是將2x1維度複數行向量映射到半徑為1的過程方法,條件是二個複數的長度平方和等於1,之所以加這條件是球是三維空間自由度,二個複數有4個自由度,有了這條件等於減掉一個自由度,這樣就有機會找出一對一的關係,也確實如此。量子電腦程式設計課的量子態由這樣的矩陣來代表,老師的教學過程跳過這一步,直接將結果做驗證,當然全部符合,學生學到的只是熟悉計算過程,對於量子態為什麼對應到球面特殊點仍是一頭霧水。找了許久,補充說明:

先將二個複數係數訂為a1, a2, b1, b2,即 a = a1 + a2*i , b = b1 + b2*i 。因上述條件,<a,a> + <b,b> = 1,且球座標用r, theta, phi 做變數,r 又是1 ,所以剩二個角度完全決定座標點坐落何方。其餘過程大學座標對應過程你會的。引入theta,配合尤拉公式,cos(theta) + i * sin(theta),將 a 長度對應至z,b對應至xy平面的投影。自然b的實部應至x,虛部對應至y,這樣就會是半球和複數2x1維的易理解的對應。但是有一缺憾,就是赤道所有點都代表同一個複數基態 |1>,這缺憾是數學物理學家無法容忍的,於是想出了將半球帳篷繼續下拉變圓球,那麼赤道又漸漸縮小到南廻歸線最終大家匯集至南極,這時又縮回一點了,成為完美對應。

2023年12月26日 星期二

編譯器是軟體工程上核心的科目

 以早對編譯器的理解伊是真深的軟體技術,講是技術是無了解這門課的重要性,應該講是軟體的核心才著。知影編譯有 2 階段,第 1 階段是語法分析起語法樹,第 2 階段語意分析看電腦聽有伊的意思無。彼時陣毋知attribute grammar,修了這門課才知影屬性文法會使嵌入cfg 規則內面,佮語法分析作伙做產生基本語意。進一步的語意無法度對bison 產生出來,也就是干焦走一遍樹仔無法度處理就著。因為編譯器是產生程式碼,所以佇程式碼執行的時才提著的資料是無法度佇編譯第二階段創掉吔,一定愛佇第二階段產生的程式碼,算好路踅斡,執行的時才會照起工。斟酌講就是無法度第二階段產生程式碼閣將結果囥入去樹仔內面,因為程式碼愛執行才提著資料嘛。所以難就難佇遮,前後的邏輯關係拂袂清楚就永遠無法度突破。好課程就是有辦法予你理解關鍵點,若像水道水仝款,水道頭愛有拍開,水才有法度一關過一關到需要的所在。這馬AI真夯,其實電腦運作是deterministic,只是資料量太大,連人都無法度全面理解可能結果,變作AI是烏箱的感覺,人無法度完全控制就是按呢來吔!

2023年6月17日 星期六

小小web app竟然layout佇windows出問題

 這个小程式 https://sindailo.tw/p/bppm.html 佇 windows 系統有小可問題,載入ㄅㄆㄇ注音符號的時,這字“一”竟然轉90度,但是佇macos, linux, 以及手機攏無問題。佇 edge 瀏覽器嘛相仝轉90度,所以毋是瀏覽器的問題,確定是作業系統的問題。



2023年4月19日 星期三

javascript 確實無啥好了解

 深入javascript的設計系統,發現伊進步誠緊,ES6出來了後 module 就有namespace 分割scope 真清楚囉。export 命令試了結果是干焦會使佇上外口層用,入去第 2 層就袂通過。Function 佮 object 無蓋好分,用Function()定義的變數是 'function',生出來的函數,伊的型態是 'object',有怪奇無?NaN嘛是一粒頭兩粒大,字面的意思是毋是數字,但是真正的意義是無法度表示的數字,親像0/0就傳回true。佇ES6加入Number.isNaN這个函式,予伊明確定佇數字方面較袂膏膏纒。2020 的規範增加 globalThis ,予迒平台的 javascript 有閣較好的相合性。其他猶有足濟的新功能加入等等,予這个語言一直咧進步呢。