0.1 - x 的近似的十進制值是多少?

0.1 - x 的近似的十進制值是多少?

這也是CSAPP中練習題2.46 的 第 2 小問。

0.1 在計算機中的表示 0.00011 0011[0011]…,對於 x,x 也是0.1在計算機中表示的二進制小數,只是這裏只考慮這個序列的二進制小數點右邊的前23位,即x =0.00011001100110011001100。

0.1 - x = 0.00000 00000 00000 00000 00011 0011[0011]…,也就是求這個數的十進制表示,那麼這個數是多少呢?
書中答案給的是(2 ^ -20) * 1 / 10,剛開始不知道爲什麼是這樣。
書中的答案裏有這麼一句話:“把這個(0.1 - x)與 0.1 的二進制進行比較“,進行比較進行比較,看出來了沒?0.1 - x 的二進制值就相當於把0.1那個數右移20位,所以就是 0.1 * (2 ^ -20).


剛開始我怎麼想都想不明白,從哪兒冒出來個 1 / 10 啊,還乘以 2 ^ -20,先是百度,沒找到,又去Google,還去Stackoverflow去search,最終決定在CoCode.cc上提問,可喜的是在我把問題一步步寫好之後,仔細揣摩作者給的答案裏的那句話,自己就想到了答案所在。當然問題就不用發啦。^_=
這再次體現了把問題描述清楚是多麼地重要!還要多思考,多比較。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章