浮點數,才是人間煙火前言
在前篇《VB的整數,你真的了解?》中,向讀者介紹整數時提到,計算機里實際上只有整數一種類型。那浮點數是如何表示的呢?浮點數的使用性能是不是比真正的整數要差呢?VB在應用過程中要注意哪些事項呢?本篇將詳細分析,來看看吧。
一、淺談浮點數
人類在進化過程中,發明了很多種度量單位,來量化我們所處的世界。但在客觀世界里,沒有那么多剛剛好的事。比如銀行存款余額,時間,導彈射程,戰艦位置等,人類也不可能無限細分度量單位。好比在計算機世界里,我們不能給每個內存單元(字節)都取一個名字,只能給有意義的內存冠名(變量)。
0x47Ab地址在AAVE被清算106.8枚WBTC:8月18日消息,據派盾監測數據,0x47Ab開頭地址在AAVE已被清算106.8枚WBTC(約合287萬美元)。[2023/8/18 18:07:35]
這時浮點數就顯得異常重要了,代表著人類對客觀世界的把控程度。這種把控充滿了主觀色彩,可以用”在乎”一詞來形容浮點數對人的意義。首先,在不同背景下,需要不同的精度。比如我們很少在意金錢數據角分之后的數據,但是在高能物理界可能需要小數點后N個數位,否則差之毫厘失之千里。其次,精度的轉換又常常在不經意間發生。比如朋友來了有好酒,我們出手闊綽,毫不計較。但敵人來了有獵槍,一個子兒也不會多給。
科技巨頭戴爾加入Hedera治理委員會:2月7日消息,科技公司戴爾將加入Hedera治理委員會,其它成員包括Google、FIS、Abrdn和 Nomura等。戴爾將運行一個共識節點,用于確定交易順序。戴爾還打算在應用程序中利用Hedera網絡,但這還處于早期階段。 (TheBlock)[2023/2/7 11:52:45]
雖然,計算機只認整數,但是我們人更多地是認小數(也即浮點數或實數)的,因為小數才有現實意義。超算和比特幣礦機,想必大家有所耳聞,他們都偏重計算,講究的是算力。如果說比特幣礦機有點不務正業,那超算是正兒八經的為科學研究服務吧。很多高精尖領域的研究,都離不開超算。但是衡量超算能力最核心的指標之一,就是浮點運算能力。
新加坡金融管理局(MAS)已經完成CBDC項目的第一階段:金色財經報道,根據周一的一份報告,新加坡金融管理局(MAS)已經完成了其中央銀行數字貨幣(CBDC)項目的第一階段。
這一階段探討了數字新加坡元的潛在用例以及實施數字新加坡元所需的基礎設施。\"新加坡金管局的愿景是在新加坡建立一個創新和負責任的數字資產生態系統,\"報告說。該國一直在與加密貨幣行業合作,并向Coinbase和Blockchain.com等大公司發放許可證,并繼續探索零售CBDC。(Coindesk)[2022/11/1 12:02:12]
最近幣市火爆,筆者也有談到比特幣,有朋友問礦機為何要裝顯卡?其實,就跟浮點數運算有關啦。我們知道顯卡專注于提升圖像圖形的處理能力,而圖形的處理就涉及到精度的問題,也就是浮點數的處理嘍。而比特幣挖礦在非對稱加解密、哈希等計算中要涉及浮點數的,所以給礦機加顯卡,是可以提高算力的。
Voyager拒絕Alameda的收購提案,稱其是低價競標并會傷害客戶:7月25日消息,加密借貸公司 Voyager 拒絕 FTX 及 Alameda 等公司提出的收購提案,并表示重組公司的計劃更好,將能夠及時交付所有客戶的現金和盡可能多的加密貨幣。而接受收購提案會對客戶造成傷害,包括資本利得稅后果、不公平地將每個 Voyager 用戶賬戶的價值限制在 7 月 5 日的價值,以及取消 VGX 代幣,這將“破壞立即超過 1 億美元的價值。”
Voyager 的律師表示,收購計劃只是有利于 Alameda 和 FTX 清算 Voyager 的資產,這是一個偽裝成拯救白騎士的低價競標。
據此前報道,FTX 聯合 FTX.US 母公司及運營商 West Realm Shires Inc.以及 Alameda Ventures 共同提出針對 Voyager Digital 用戶的提前索賠計劃,SBF 強調該計劃旨在幫助用戶盡快取回資產。(Cointelegraph)[2022/7/25 2:35:18]
二、VB的浮點數結構
1、Single類型
占4字節,6位有效小數。由1Bit符號位、8Bits指數位和23Bits有效數位三部分組成。其結構如下:
額,有點小,點擊看大圖那Single又是如何轉換為整數的呢?按照IEEE(美國電氣和電子工程師學會)的標準,按照以下公式進行轉換:
l=(-1)^s*(1+f)*2^(e-127)
其中:l為十進制整數,s為第32bit位的符號,f為有效小數,e為冪指數。
看上去很復雜,其實在VB里非常簡單,將Single變量的內存數據,直接拷貝到Long類型變量的內存里,就完成了轉換。
2、Double類型
占8字節,15位有效小數。由1Bit符號位、11Bits指數位和52Bits有效數位三部分組成,結構與Single類似。與十進制轉換公式為:l=(-1)^s*(1+f)*2^(e-1023)。
在VB中,需要借助Currency類型,來實現轉換。
3、Date類型
占8字節,是VB的日期格式。DATE在WTYPES.H中定義為"typedefdoubleDATE;",所以Date就是Double類型。值得一提的是,其整數部分為年月日,小數部分為時分秒,可以手工實現高精度時間哦。
三、VB浮點數使用過程中要注意哪些?
按浮點數的結構,我們可知浮點數在計算機中,并不等于數學意義上的實數,而是存在人為舍位的近似值。因此時時刻刻牢記精度問題,是正確使用浮點數的前提。
1、浮點數與10進制整數相互轉換時,存在精度問題。
2、浮點數謹慎用于相等判斷。
3、VB對小數常數、除法結果等默認為Double類型,在計算中只要有小數,都會做Double類型轉換,會降低代碼性能。在X86的32位機器下,CPU處理Single的速度更快,若精度允許,應盡量使用該類型,否則應統一使用Double類型。
4、VB中若需要更高精度的浮點數,則需借助Decimal類型,該類型支持28位有效小數位,但性能也更低。
<點擊頭像加關注,更多VB精彩等你來看>
Tags:比特幣DATTYPE比特幣中國官網聯系方式40億比特幣能提現嗎比特幣最新價格行情走勢DAT價格DAT幣TYPE價格TYPE幣
來源:21世紀經濟報道 原標題:比特幣市值進軍1萬億美元,芯片大廠英偉達宣布將生產礦機通脹憂慮、機構支持、大佬表態……多重因素促使加密貨幣越炒越熱.
1900/1/1 0:00:00Billions項目組 今年以來,比特幣從28,000美元左右一路攀升至57,000美元,不到兩個月的時間,累計漲幅已逾90%.
1900/1/1 0:00:00在完成與加密貨幣的市價捆綁后,特斯拉乘著電動汽車生意,離財富神話又近了一步。日前,Wedbush分析師丹尼爾·艾夫斯表示,在特斯拉投資15億美元購買比特幣后,其股價與比特幣價格掛鉤.
1900/1/1 0:00:00來源:第一財經 加密貨幣的“帶貨狂人”、特斯拉CEO埃隆·馬斯克最近又語出驚人——“現在可以用比特幣購買特斯拉了;支付給特斯拉的比特幣將保留為比特幣,而不是轉換為法定貨幣.
1900/1/1 0:00:00鞭牛士3月24日消息,今日,特斯拉美國官網顯示支持使用比特幣來付款。據悉,今年2月,在提交給美國證券交易委員會的一份文件中,特斯拉聲稱購買了價值15億美元的比特幣.
1900/1/1 0:00:00眾所周知,“中國”國家名詞的翻譯為“China”,而china實際意義上是指瓷器,之所以會有這樣的表述,是由于中國古時非常注重禮儀邦交,在與世界各國的交往中,瓷器作為代表產品之一.
1900/1/1 0:00:00