計算機怎么處理小數的


一直使用float和double類型的變量,但從來還沒有弄懂過這兩種類型在計算機中怎么表示的。

首先了解一下十進制怎么表示小數:

1.在有限的小數位數里是無法表示所有的數的,例如1/3是無法寫成小數的,他們是無限循環小數,還有各種無理數無線不循環小數,例如π=3.14159265358979323......,

  使用小數是無法精確的表示所有的數的。

2.小數的表述形式上有多種,這里主要介紹一下指數表現形式例如下面:

  0.985  =  0.985 x 100

  0.985  =  9.85 x 10-1

  0.985  =  0.0985 x 10

二進制小數的表示和十進制的表示方法一樣,二進制小數也是無法表示所有的數的,例如十進制的(0.1)是不能表示為有限位的二進制小數的;

二進制小數也是可以表述成指數的形式的。

計算機表示方法,以下是IEEE754標准:

1、 IEEE 754 標准:

IEEE 754 標准成立於1985年,80年代起所有的計算機系統均支持IEEE 754

IEEE 754 對浮點數在計算機表示方法有三個主要的規定:

對於單精度(single precision):單精度浮點數位長:32位

(1) IEEE 754 標准規定:第1位為符號位,1 代表負,0代表正

(2) 接下來用8位來表示指數部分。

(3) 接下來的23位用來表示有效數位

IEEE 浮點標准表示: V = (-1)s * M * 2E

  ①、s 是符號位,為0時表示正,為1時表示負。

  ②、M為尾數,是一個二進制小數,它的范圍是0至1-ε,或者1至2-ε(ε的值一般是2-k次方,其中設k > 0)

  ③、E為階碼,可正可負,作用是給尾數加權。

一般我們主要使用的程序語言中是類型主要有float和double兩種,一種是單精度,一種是雙精度

float是單精度的,采用32位二進制表示,其中1位符號位,8位階碼以及23位尾數。double是雙精度的,采用64位二進制表示

例如下圖

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM