1. 程式人生 > >十進位制的0.1 為什麼不能用二進位制很好的表示?

十進位制的0.1 為什麼不能用二進位制很好的表示?

     二進位制表示法。。。。

    這是也是基礎知識啦:

   別急我們一點一點的講解。正整數轉二進位制,負整數轉二進位制,小數轉二進位制

  正整數轉二進位制:  正整數轉成二進位制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。

            21 /2    -------------------------------餘  1

            10/2     -------------------------------餘   0

             5/2      ------------------------------- 餘   1

             2/2      --------------------------------餘  0

              1/2     ---------------------------------餘 1

      記住,到著排序  10101  ,驗證下轉成十進位制: 1×2的4次方+1×2的2次方+1×2的0次方=16+4+1=21。正確。

      計算機一般是8 位 16位  32位  64 位的,所以不夠位高位補零。8位表示法:00010101

負整數轉二進位制:先是將對應的正整數轉換成二進位制後,對二進位制取反,然後對結果再加一。

     取 -21 演示,看口訣,

         21 的二進位制表示為: 10101

        取反:  01010

        加一 : 01011

  小數轉換為二進位制的方法:對小數點以後的數乘以2,有一個結果吧,取結果的整數部分(不是1就是0嘍),然後再用小數部分再乘以2,再取結果的整數部分……以此類推,直到小數部分為0或者位數已經夠了就OK了。

     演示: 0.125 ×2=0.25 .......................0

                 0.25×2=0.5.............................0

                 0.5×2=1.0................................1

   即 0.125的二進位制表示為小數部分為0.001

     記住,乘到小數為0。排序:正序。

驗證: 0.001        0×2的0次方+0×2的-1次方+0×2的-2次方+0×2的-3次方=1/8=0.125.正確。

   現在來說明0.1轉二進位制不能表示的原因啦:

  0.1×2=0.2 .....................0

 0.2×2=0.4 ......................0

 0.4×2=0.8 .....................0

 0.8×2=1.6.......................1

 0.6×2=1.2.......................1

 0.2×2=0.4.......................0

 .....

 是無限迴圈的。所以。。。。你懂的!

  for(double i=0;i!=10;i+=0.1)
{
}

有可能是死迴圈。用浮點數迴圈需要注意啦。

相關推薦

十進位制0.1 為什麼不能二進位制表示

     二進位制表示法。。。。     這是也是基礎知識啦:    別急我們一點一點的講解。正整數轉二進位制,負整數轉二進位制,小數轉二進位制   正整數轉二進位制:  正整數轉成二進位制。要點一定一定要記住哈:除二取餘,然後倒序排列,高位補零。             21 /2    -

Material Theme on sublime text 3 一個起來的Sublime主題

Material Theme on sublime text 3 之前用Sublime看log總是會看的頭暈眼花,在github上找到一個很好的Sublime主題,記錄一下。原文地址 日前在facebook跟laracasts上面看到很多人使用這個theme,感覺看起來很不錯,就順手

十進制的0.1 為什麽不能二進制表示

現在 需要 我們 。。 進制 表示法 32位 取余 小數點 二進制表示法。。。。 這是也是基礎知識啦: 別急我們一點一點的講解。正整數轉二進制,負整數轉二進制,小數轉二進制 正整數轉二進制: 正整數轉成二進制。要點一定一定要記住

tensorflow 1.0 學習:別人訓練的模型來進行圖像分類

ima ppi gin 什麽 dir targe spl flow blog 谷歌在大型圖像數據庫ImageNet上訓練好了一個Inception-v3模型,這個模型我們可以直接用來進來圖像分類。 下載地址:https://storage.googleapis.com/d

Geosoft.Oasis.Montaj.v7.0.1版+AutoForm

str ice pipes 我們 數據管理 sca 1.2 8.0 ber Geosoft.Oasis.Montaj.v7.0.1好用版Hampson-Russell.CE8.R4.1Landmark.ProMAX.R5000.for.linux32Maptek.Vulca

tensorflow 1.0 學習:Google訓練的模型來進行影象分類

谷歌在大型影象資料庫ImageNet上訓練好了一個Inception-v3模型,這個模型我們可以直接用來進來影象分類。下載地址:github:https://github.com/taey16/tf/tree/master/imagenet下載完解壓後,得到幾個檔案:其中的c

tensorflow 1.0 學習:別人訓練的模型來進行影象分類

谷歌在大型影象資料庫ImageNet上訓練好了一個Inception-v3模型,這個模型我們可以直接用來進來影象分類。 下載完解壓後,得到幾個檔案: 其中的classify_image_graph_def.pb 檔案就是訓練好的Inception-v3模型。 imagenet_synset_to_h

0.1在計算機中不能被精確表示(浮點數的陷阱其實也是二進位制下的陷阱?)

#include<stdio.h> #include<iostream> int main() { double i; /* for (i=0; i != 10;i+=0

gooreplacer

acer stack rep row flow cer replace 喜歡 畫面 國內上 StackOverflow, hackernews 之類的站點會慢。 因為頁面裏有鏈接指向 goolge, 會被墻。 於是拖累了整個頁面的顯示。 gooreplacer 可以把這

的log4j

.cn mage com log4j image idt bsp blog 技術分享 很好用的log4j

的谷歌字體以及Gravatar頭像一鍵替換WordPress插件----WP Acceleration for China 插件

ati 以及 content none 應對 集合 .org ref 多余 WordPress總是被新上手的朋友詬病說速度慢,其實多半都要歸功於谷歌字體的功勞。在應對字體這個問題的時候,大家都會有各種不同的解決方案。今天我給大家推薦一款插件,它集合了多個替代方案,可以方便的

Linux下tomcat無法啟動/啟動後無法過127.0.0.1:8080訪問解決方案

clas java require com 自己的 bug jpda force comm 啟動tomcat情況如下: [email protected]:/usr/local/tomcat/apache-tomcat-8.5.20/bin# ./catalina

gcc和MinGW的異同(在cygwin/gcc做的東西可以無縫的在linux下,沒有任何問題,是在windows下開發linux程序的一個的選擇)

實現 o-c tool 交叉 lin 分析 模擬 gcc編譯器 還要 cygwin/gcc和MinGW都是gcc在windows下的編譯環境,但是它們有什麽區別,在實際工作中如何選擇這兩種編譯器。 cygwin/gcc完全可以和在linux下的gcc化做等號,這個可以從bo

現在越來越喜歡ajax傳值了,這樣能讓網站的體驗性,今天就總結了一下常用的

click put nbsp index.php 常用 體驗 code size .get 這是不用循環的方法 就是傳過來的是一位數組 //編輯黨建分類 function gk_bj(id){ $.post("{:U(‘Luser/lei_edlt

C語言

好用 store ejb wot gin userinfo mcs sina cbe JW83HX撓9墑JZ揭嶄http://shufang.docin.com/xbgoz81833 8PEyr4辛訪枚扒3http://jz.docin.com/hhbo9279 190k2

static (php)

靜態變量 簡單 技術 images lin target -- functions es2017 一、靜態變量具有這樣的特性: 當在某函數裏定義一個靜態變量後,這個變量不會即使函數退出了,在下次調用這個函數時,它會使用前次被調用後留下的值。 (這樣就不用把一個變

jstat 監控調整GC

mman 版本 capacity sta 52.0 最小 容量 ring keyword jstat命令使用 jstat命令可以查看堆內存各部分的使用量,以及加載類的數量。命令的格式如下: jstat [-命令選項] [vmid] [間隔時間/毫秒] [查詢次數] 註意:使

一個的自動生成工具——mybatis generator

led ron 很好 user runtime rim mod 文件 path mybatis generator-自動生成代碼 準備材料:   一個文件夾,一個數據庫的驅動包,mybatis-generator-core-1.3.5.jar,一條生成語句   如圖:(我用

一個的在線編輯、展示、分享、交流JavaScript 代碼的平臺

找到 png ron bubuko eight 就會 很好 str 技術分享 在發表博客時,有一些代碼只能粘貼進去,而不能看到代碼運行的效果,需要讀者把代碼粘貼進自己的編輯器,然後再運行看效果,這是一件很耗時的事情 在平時百度的時候,我發現一些網站可以在線預覽功能,而且可以

layerdate一款日期插件

可選 itl 選擇 render 元素 charset scrip head layer <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>l