日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

浮点数及缺陷

發(fā)布時間:2025/3/15 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浮点数及缺陷 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數字分為整數和小數.
char int ……都是用來存儲整數的.

那么小數如何保存呢?

小數在我們的C語言中,用float和double來表示.

float對應著4個字節(jié)
double對應著8個字節(jié).
long double 16個字節(jié)



計算機不管是任何數據,最后都會轉換成1和0來存儲.
而制定float和double是按照IEEE編碼規(guī)范的.
跟原碼補碼反碼和
Ascll、Unicode碼,還有x86.X64一樣.

都是為了一個原則,統一規(guī)范.大家都按照這個套路來.

深究為什么這樣設計沒有太大意義.

浮點數在內存里面和整數存儲理解是不一樣的。
浮點數需要考慮小數點。

就拿float來舉例吧。



127.53這是一個小數。
還記得科學計數法嗎?用科學計算法可以將小數點的位置固定。
我們可以這樣表示:12.753 x 101也可以寫成
1.2753 x 102結果都等同于127.53。

8.25這個小數也可以表示成8.25 x 10 0
-0.012這個小數也可以表示為1.2 x 10 -2

十進制整數轉換二進制整數大家用計算器很容易轉換。
假如我們現在要把20.5這個小數放到float里面.

那如何把20.5轉換成2進制數呢?

分兩次轉換。
整數除以2,商繼續(xù)除以2,得到0為止,將余數逆序排列。
小數乘以2,取整,小數部分繼續(xù)乘以2,取整,得到小數部分0為止,將整數順序排列。

20.5
20 / 2= 10 余數為0
10/ 2= 5 余數為0
5 / 2= 2 余數為1
2 / 2 =1 余數為0
1/ 2= 0 余數為1

整數的部分是10100

所有的整數一定可以轉換成一個二進制數.


第1位符號位。正數為0,負數為1.
第2位到第9位指數位。
是0000 0100這樣存儲嗎?
不是的,float需要指數+111 1111(127)然后把結果存儲進去。
100+111 1111=10000011 (131)

0-1000 0011-0100 1000 0000 0000 0000 000 = 這就是20.5的float二進制內存表示。


30.3
20=10100
0.3*2=0.6(0)
0.6*2=1.2(1)
0.2*2=0.4 (0)
0.4*2=0.8 (0)
0.8*2=1.6 (1) //進入循環(huán)
0.6*2=1.2(1)
0.2*2=0.4 (0)
0.4*2=0.8 (0)
0.8*2=1.6 (1)

二進制為10100.010011001(無限循環(huán))
科學計算法:1.01000 1001 1001 1001 E100
0-1000 0011-01000 1001 1001 1001 1001 10= 這就是20.3的float二進制內存表示。
float 1 8 23
double 1 11 52




32位單精度
單精度二進制小數,使用32位存儲。
1 8 23 位長
偏正值 +127 0111 1111

64位雙精度
雙精度二進制小數,使用64位存儲。
1 11 52 位長
偏正值 +1023 011 1111 1111

所以,不難發(fā)現,有些10進制小數,用二進制小數來表示的時候,是無法準確的表示,只是相似。

這就造成了,小數計算會造成結果不精準。
而我們知道貨幣是精確到2位的。1.53 一元五角三分。

所以貨幣用這種計算是很危險的。


float v1;
float v2;
float v3;
#include <stdio.h>
#include <stdlib.h>
void main() {
v1 = 20.3;
v2 = 13.8;
v3 = v1 + v2;
printf("v3 is %f\n",v3);
system("pause");
}

dvd vcd 這是視頻格式編碼
mp3 wav
同樣的音質

mp3= 5M
wma=2M
wma wmv //微軟公司

jpg png gif bmp
//解碼器

轉載于:https://www.cnblogs.com/xiaodaxiaonao/p/7430256.html

總結

以上是生活随笔為你收集整理的浮点数及缺陷的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。