1. 程式人生 > >讀《程序是怎樣跑起來的》第三章有感

讀《程序是怎樣跑起來的》第三章有感

符號表 表達式 中間 右移 意思 小數 一個 清晰 組成

本章上來就提出一個很有意思的問題,雖然我並沒有嘗試過100個0.1相加,也很少有在寫代碼時碰到小數。原來是因為有些十進制數無法轉化成二進制數,0.1轉化成二進制數時類似於循環小數,計算機也只能取到近似值,無法處理無限循環小數,計算機會根據變量數據類型所對應的長度將數值從中間截斷或者四舍五入,這也就是計算機出錯的原因。十進制小數轉化成二進制時要采用“乘2取整,順序排列”法,不查一下我還真忘了。浮點數是指用符號、尾數、基數、指數四部分組成的小數,符號部分也是0代表正數,1代表負數,數值的大小用尾數部分和指數部分來表示,在二進制中是用“尾數部分*2的指數次冪”,其中尾數部分用的是通過左移或右移“將小數點前面的數固定為1的正則表達式”,EXCESS系統是指通過將指數部分表示範圍的中間值設為0,使得負數不需要通過符號表示。二進制轉化為十六進制可以減少位數,看起來比較清晰。有些計算錯誤的微小誤差可以忽略,也可以將小數先轉化為整數進行計算。

讀《程序是怎樣跑起來的》第三章有感