国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關(guān)注微信公眾號

學(xué)會在Linux下防火墻的機(jī)制應(yīng)用
2007-06-24   

前言
在近日幾個帖子里面,和QQ群的討論里面,我發(fā)現(xiàn)很多網(wǎng)友都遇到的問題都是因?yàn)椴磺‘?dāng)?shù)厥褂昧藛尉?雙精度數(shù)值。因此想專門就這個話題談一下。
單精度和雙精度數(shù)值類型最早出現(xiàn)在C語言中(比較通用的語言里面),在C語言中單精度類型稱為浮點(diǎn)類型(Float),顧名思義是通過浮動小數(shù)點(diǎn)來實(shí)現(xiàn)數(shù)據(jù)的存儲。這兩個數(shù)據(jù)類型最早是為了科學(xué)計(jì)算而產(chǎn)生的,他能夠給科學(xué)計(jì)算提供足夠高的精度來存儲對于精度要求比較高的數(shù)值。但是與此同時,他也完全符合科學(xué)計(jì)算中對于數(shù)值的觀念:
當(dāng)我們比較兩個棍子的長度的時候,一種方法是并排放著比較一下,一種方法是分別量出長度。但是事實(shí)上世界上并不存在兩根完全一樣長的棍子,我們測量的長度精度受到人類目測能力和測量工具精度的限制。從這個意義上來說,判斷兩根棍子是否一樣長絲毫沒有意義,因?yàn)榻Y(jié)果一定是False,但是我們可以比較他們兩個哪個更長或者更短。這個例子很好地概括了單精度/雙精度數(shù)值類型的設(shè)計(jì)初衷和存在意義。
基于上述認(rèn)識,單精度/雙精度數(shù)值類型從一開始設(shè)計(jì)的時候,就不是一個準(zhǔn)確的數(shù)值類型,他只保證在他這個數(shù)值類型的精度之內(nèi)是準(zhǔn)確的,精度之外則不保證,比方說,一個數(shù)值5.1,很可能存儲在單精度/雙精度數(shù)值中的實(shí)際值是5.100000000001或者5.09999999999999。導(dǎo)致這個現(xiàn)象的原因我們可以通過兩種方式來解釋:
簡單的解釋方法:
你可以嘗試在任何一個控件的屬性面板中,設(shè)定他的寬度為:3.2CM,當(dāng)你輸入完畢后,你會發(fā)現(xiàn)值自動變成了3.199cm,無論你怎么改,你都無法輸入3.200CM,因?yàn)閷?shí)際上在電腦中存儲的并不是CM為單位的數(shù)值,而是“緹”為單位的數(shù)值,而“緹”和CM之間的比值,是個很難被除盡的數(shù),因此你輸入完畢后,電腦自動轉(zhuǎn)換成了最接近的“緹”值,然后再轉(zhuǎn)換成厘米顯示到屬性面板上,這一乘一除,兩次四舍五入,誤差就出來了。單精度/雙精度也是類似的原理,其實(shí)在二進(jìn)制存儲的時候,單精度/雙精度都采用了類似相近分?jǐn)?shù)的方法,而這樣的存儲是不可能做到準(zhǔn)確的。
深入的解釋方法:
讓我們來看看我們存儲到數(shù)字介質(zhì)中的單精度/雙精度值到底是怎么樣的,我們使用如下代碼對單精度類型進(jìn)行一個解剖:

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
Public Sub floatTest()
Dim dblVar As Single
dblVar = 5.731 / 8
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
dblVar = dblVar * 2
dblOutput dblVar
End Sub
Public Sub dblOutput(ByVal dblVar As Single)
Dim bytVar(3) As Byte
Dim i As Integer, j As Integer
Dim strVar As String
CopyMemory ByVal VarPtr(bytVar(0)), ByVal VarPtr(dblVar), 4
strVar = dblVar & ": "
For i = 3 To 0 Step -1
For j = 7 To 0 Step -1
strVar = strVar & (bytVar(i) And 2 ^ j) / 2 ^ j
Next j
strVar = strVar & " "
Next i
Debug.Print strVar
End Sub
運(yùn)行后我們得到輸出結(jié)果(輸出格式為高位左,低位右):
.716375: 00111111 00110111 01100100 01011010
1.43275: 00111111 10110111 01100100 01011010
2.8655: 01000000 00110111 01100100 01011010
5.731: 01000000 10110111 01100100 01011010
11.462: 01000001 00110111 01100100 01011010
22.924: 01000001 10110111 01100100 01011010
這里,我們把單精度類型轉(zhuǎn)化成了二進(jìn)制數(shù)據(jù)輸出,這里我們看到,雖然這六個數(shù)字完全不同,但是他們的二進(jìn)制存儲驚人地相似,我們看到紅色標(biāo)記部分,每次都是加1,事實(shí)上,單精度數(shù)據(jù)類型使用從高位開始第1位作為正負(fù)標(biāo)記位(綠色),第2位到第9位,是一個跨字節(jié)的有符號字節(jié)類型數(shù)據(jù),這個數(shù)值決定了小數(shù)點(diǎn)移動的方向和位數(shù)(紅色),第10位到32位保存一個整數(shù)(藍(lán)色)在存儲過程中,電腦首先把輸入的值不斷移位(乘除2)直到這個數(shù)的整數(shù)部分占用了全部24位的整數(shù)位,然后把移動的位數(shù)寫入浮點(diǎn)部分(紅色),而移位后的結(jié)果寫入整數(shù)部分(藍(lán)色和綠色),小數(shù)部分則舍棄。求值的時候則是反向過程,先根據(jù)正負(fù)位和整數(shù)位求值,然后根據(jù)紅色部分的整數(shù)來進(jìn)行移位(乘除2的次方),最終才是我們得到的單精度數(shù)值。雙精度數(shù)值也是同樣原理,只是位數(shù)更多而已。
通過解剖單精度數(shù)值的二進(jìn)制存儲格式,我們可以清楚看到,實(shí)際上單精度/雙精度的存儲,都要通過乘法和除法,其中必有舍入,如果恰好你的數(shù)值在除法中被舍入了,那么你賦的初值就很可能與你最終存儲的值不完全相同,其中的微小差異,并不與單精度/雙精度的設(shè)計(jì)目標(biāo)相違背。
當(dāng)我們在數(shù)據(jù)庫中或者VBA代碼中使用一個單精度/雙精度數(shù)值的時候,也許你從界面上看不到區(qū)別,但是在實(shí)際的存儲中,這個差別卻真真切切地就在那里,當(dāng)你對其進(jìn)行相等比較的時候,系統(tǒng)只是簡單地作二進(jìn)制的比較,界面上無法體現(xiàn)的微小差異,在二進(jìn)制比較面前卻無處遁形,于是,你的等于比較返回了一個意料之外的False。
結(jié)束語
通過本文,我們介紹了單精度/雙精度數(shù)據(jù)類型的實(shí)質(zhì)以及其特點(diǎn)(優(yōu)點(diǎn)和缺點(diǎn)),通過比較和解剖我們了解到單精度/雙精度實(shí)際上存儲的是一個近似值,浮點(diǎn)的特性決定了他可以存儲非常小的數(shù),也可以存儲極大的數(shù),他的數(shù)據(jù)精度并不是一個絕對值,而是存儲值的百分比,如果你存儲10的100次方,誤差就可能是10的80次方,如果你存儲10的-100次方,誤差就可能是10的-120次方。因此單精度/雙精度數(shù)據(jù)類型不能進(jìn)行相等的比較(或數(shù)據(jù)庫關(guān)聯(lián))。
如果你需要進(jìn)行等值比較或關(guān)聯(lián),那么有以下幾種方案:
1、使用專為準(zhǔn)確度而設(shè)計(jì)的貨幣類型。
2、使用整數(shù)類型存儲,代碼中移位。
3、某些特定情況下可以用文字存儲。


熱詞搜索:

上一篇:如何讓您的Linux操作系統(tǒng)更加安全(1)
下一篇:RedHat linux 9系統(tǒng)下構(gòu)建小型入侵檢測系統(tǒng)(1)

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
精品综合久久久久久8888| 国产精品对白交换视频| 亚洲成av人片一区二区梦乃| 一本久久a久久精品亚洲| 国产精品无遮挡| 亚洲一区二区高清| 色久优优欧美色久优优| 日韩理论电影院| www.欧美色图| 最新中文字幕一区二区三区| 狠狠色丁香婷婷综合| 精品99999| 精品在线一区二区三区| 精品成人a区在线观看| 国产一区二区三区在线观看免费视频 | 5566中文字幕一区二区电影| 亚洲一级在线观看| 欧美群妇大交群中文字幕| 午夜精品久久久久久| 欧美一区日韩一区| 精品在线亚洲视频| 中文字幕欧美激情| 一本大道久久精品懂色aⅴ| 亚洲伦在线观看| 欧美视频一区在线观看| 午夜激情久久久| 精品剧情v国产在线观看在线| 精品中文av资源站在线观看| 欧美一级专区免费大片| 韩国一区二区在线观看| 精品美女一区二区三区| 丁香婷婷深情五月亚洲| 亚洲欧美日韩在线| 欧美日韩国产在线观看| 日本中文一区二区三区| 久久亚洲影视婷婷| 99视频超级精品| 亚洲综合久久久| 欧美日韩一级黄| 久久国产精品无码网站| 欧美国产在线观看| 欧美日韩中文字幕一区| 午夜欧美一区二区三区在线播放| 欧美电视剧在线看免费| 99re8在线精品视频免费播放| 一区二区三区四区乱视频| 欧美一区二区三区四区久久| 国产一区欧美二区| 亚洲男同1069视频| 日韩免费一区二区| 91视频免费看| 久草中文综合在线| 怡红院av一区二区三区| 日韩亚洲欧美综合| 99国产欧美另类久久久精品| 日本亚洲视频在线| 亚洲欧洲精品成人久久奇米网| 欧美探花视频资源| 国产一区欧美一区| 国产精品久久久久久久午夜片 | 欧美一区二区三区影视| 大胆欧美人体老妇| 免费日韩伦理电影| 午夜精品福利一区二区三区av | 精品久久久久久久久久久院品网| 色视频成人在线观看免| 成人精品免费看| 视频一区在线播放| 久久精品男人天堂av| 日韩欧美美女一区二区三区| 欧美二区在线观看| 97久久超碰国产精品| 99久久久无码国产精品| 精品在线亚洲视频| 黑人精品欧美一区二区蜜桃 | 婷婷开心激情综合| 一区二区日韩av| ...中文天堂在线一区| 国产亚洲精品aa午夜观看| 日韩午夜中文字幕| 日韩亚洲电影在线| 日韩视频在线你懂得| 欧美卡1卡2卡| 欧美一区二区三区喷汁尤物| 91黄色激情网站| 欧美伊人久久久久久久久影院 | 亚洲摸摸操操av| 亚洲自拍偷拍麻豆| 亚洲欧美精品午睡沙发| 中文字幕欧美日韩一区| 国产欧美日韩三级| 亚洲免费看黄网站| 亚洲欧美偷拍卡通变态| 亚洲国产精品一区二区久久恐怖片| 亚洲区小说区图片区qvod| 亚洲另类在线制服丝袜| 亚洲免费观看高清完整| 亚洲一区二区三区四区的| 一区二区三区欧美| 免费观看日韩av| 激情五月激情综合网| 国产精品99久| 国产成人精品亚洲午夜麻豆| 99re热这里只有精品免费视频| av中文字幕不卡| 欧美日韩亚洲丝袜制服| 精品视频在线视频| 精品88久久久久88久久久| 久久众筹精品私拍模特| 综合自拍亚洲综合图不卡区| 亚洲欧美日韩中文播放| 天堂va蜜桃一区二区三区| 久久精品国产免费| 9l国产精品久久久久麻豆| 色老汉av一区二区三区| 日韩精品一区在线| 国产欧美一区二区三区鸳鸯浴 | 美女视频一区二区三区| 国内精品自线一区二区三区视频| 成人h精品动漫一区二区三区| 99久久夜色精品国产网站| 91.麻豆视频| 精品国产一区二区三区久久影院| 椎名由奈av一区二区三区| 亚洲午夜在线视频| 国产成人精品一区二区三区四区| 97超碰欧美中文字幕| 日韩三级av在线播放| 国产欧美一区二区精品性色超碰| 亚洲成人手机在线| 久久99久久久久久久久久久| 日本久久精品电影| 日韩免费在线观看| 亚洲成人资源在线| 国产精品一区二区在线看| 欧美乱妇15p| 国产精品成人免费精品自在线观看| 日韩激情视频在线观看| 成人精品视频网站| 26uuu精品一区二区三区四区在线| 国产精品国模大尺度视频| 黄色精品一二区| 欧美丝袜丝交足nylons图片| 国产精品福利一区二区| 日韩二区在线观看| 在线观看欧美黄色| 国产日韩精品一区二区浪潮av| 日韩电影免费一区| 色综合久久综合| 亚洲欧洲在线观看av| 麻豆91免费看| 91精品黄色片免费大全| 亚洲自拍偷拍图区| 成人涩涩免费视频| 国产欧美一区二区三区沐欲| 日本伊人午夜精品| 欧美三级电影网| **网站欧美大片在线观看| 粉嫩aⅴ一区二区三区四区 | 日韩久久精品一区| 一区二区视频免费在线观看| www.av亚洲| 久久综合色8888| 精品亚洲porn| 制服丝袜亚洲精品中文字幕| 亚洲va天堂va国产va久| 91亚洲精华国产精华精华液| 中文字幕中文在线不卡住| 国产一区二区三区最好精华液| 久久一区二区视频| 久草精品在线观看| 国产日产欧产精品推荐色 | av福利精品导航| 亚洲青青青在线视频| 波多野结衣视频一区| 最新日韩av在线| 成人午夜视频免费看| 欧美国产一区在线| 高清久久久久久| **网站欧美大片在线观看| 懂色av中文字幕一区二区三区| 中文字幕精品在线不卡| 处破女av一区二区| 最新国产の精品合集bt伙计| 激情欧美一区二区三区在线观看| 26uuu精品一区二区三区四区在线| 国产乱子伦视频一区二区三区| 精品福利在线导航| 国产成人综合网站| 中文字幕欧美激情| 国产高清不卡一区| 国产精品网站在线| 成人av午夜影院| 性欧美大战久久久久久久久| 欧美色欧美亚洲另类二区| 欧美a级一区二区| 精品国产一区二区三区av性色| 国产不卡在线播放| 中文字幕永久在线不卡| 欧美日韩三级一区|