五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

單精度浮點(diǎn)數(shù)應(yīng)用時(shí)的最大存儲(chǔ)整數(shù)

2023-06-19 11:49 作者:莫末陌寞  | 我要投稿

如果搜“32位單精度浮點(diǎn)數(shù)的最大值”一般都是 3.4 * 10^38。

Q:看著感覺能存很大的值,至少百億千億無(wú)所謂?還有很多位的盈余。

A:其實(shí)存?zhèn)€千萬(wàn)都費(fèi)勁,因?yàn)檎麛?shù)部分的值丟失是難以接受的。

????執(zhí)行以下代碼得(C# for Unity)

用unity是因?yàn)檩敵龇椒ㄗ疃套詈?jiǎn)單(

以上,

賦值2^23的爆金幣了,

賦值2^23-1的爆金幣了,

賦值2^23+1的對(duì)了,

得2^23的乘法對(duì)了,

得2^24的乘法爆金幣了。

初看 3.4 * 10^38是很難琢磨的一個(gè)值 因?yàn)樗鼏渭兪?2^128 結(jié)果的十進(jìn)制轉(zhuǎn)述。

廣義的浮點(diǎn)數(shù)是小數(shù)點(diǎn)任意位置的,即 10可以表示為:10^1 * 1、也可以為10^2 * 0.1。

被float、double等定義的浮點(diǎn)數(shù)是IEEE提供的一個(gè)大家遵循的表示標(biāo)準(zhǔn),這里的位分配即是IEEE對(duì)float提供的標(biāo)準(zhǔn)。

32位的浮點(diǎn)數(shù)的位分配:1個(gè)符號(hào)(S),8個(gè)階碼(E),23個(gè)尾數(shù)(bn)

%E6%B1%82%E5%80%BC%E5%85%AC%E5%BC%8F%20%3D%20(-1)%5ES%20*%202%5EE%20*%20(b_0%2Bb_1%2B%E2%80%A6b_%7B22%7D)

(1) 符號(hào)

????0正數(shù),1負(fù)數(shù)沒(méi)什么好說(shuō)的。

(2) 階碼

??? ① E ∈ [-126,127]

????Q:E為什么屬于這個(gè)區(qū)間?

????A:上文提及,浮點(diǎn)數(shù)中為階碼(指數(shù))提供了八位

????????在IEEE標(biāo)準(zhǔn)中,E要+127 即 + 0111 111,[-126,127] + 127之后為[1,254]。

????????對(duì)應(yīng)到二進(jìn)制是[0000 0001, 1111 1110],然后0和255保留用來(lái)做其他的事情。

??? ② 我在寫文的時(shí)候還看有:

????Q:為什么float的最大值不是6.8x10^38(2^129)而是3.4x10^38(2^128)。

????A:轉(zhuǎn)為二的指數(shù)就明確一些了,float存不住2^128,到E=128就爆了,即階碼1111 1111,

??????? 上文已經(jīng)說(shuō)過(guò)255被保留有特殊含義(表示無(wú)窮),尾數(shù)能提供一個(gè)最大不超過(guò)2的值,

????????????2^127 x 2 = 2^128。

(3) 尾數(shù)

?? 上文提到,尾數(shù)最大不超過(guò)2。

?? 那么再想一下數(shù)學(xué)上的科學(xué)計(jì)數(shù)法,一個(gè)數(shù)也會(huì)被歸正為10^n * z.zzz(Z∈[0,9]正整數(shù)),這樣的一個(gè)數(shù)。例如123.456 = 10^2 * 1.23456。

????對(duì)尾數(shù)的處理就像這樣。

??? 規(guī)格化:

????????計(jì)算機(jī)中對(duì)數(shù)的處理都是二進(jìn)制的,首先要把十進(jìn)制數(shù)轉(zhuǎn)為二進(jìn)制數(shù)。

????????本篇幅以0.0625為例子。

??????? ① 十進(jìn)制轉(zhuǎn)二進(jìn)制 (0.0625)10 = (0 點(diǎn) 0001)2

????????????點(diǎn):這個(gè)點(diǎn)是浮點(diǎn)的表達(dá)。

??????????? ????當(dāng)0.x時(shí),點(diǎn)在第二位之前,當(dāng)為2.x時(shí)(10 點(diǎn) 0000) = 點(diǎn)就在第三位之前了。

????????????小數(shù)部分計(jì)算二進(jìn)制:

????????????????值不斷檢測(cè)去商余2^n(n<0)。

??????????????? 例如在本例: 0.0625 / 0.5(2^-1) = 0……0.0625,和整數(shù)部分的運(yùn)算邏輯是相同的。

????????② 規(guī)格化處理:

????????????????就像二進(jìn)制的科學(xué)計(jì)數(shù)法:0 .0001 = 2^-4 * 1.000

????????????????補(bǔ)到去除1.000的1,然后對(duì).000 補(bǔ)0到23位。

????????最后0.0625的編碼為0 (127-4)10 0*23。

????????在上文的規(guī)格化處理時(shí),直接去了二進(jìn)制科學(xué)計(jì)數(shù)法之后的點(diǎn)前值1,因?yàn)樗厝皇?。

????????????對(duì)于一個(gè)非0的數(shù),二進(jìn)制科學(xué)計(jì)數(shù)法就是去找它從左到右的第一個(gè)1。

????????????對(duì)于0,浮點(diǎn)數(shù)使用 階碼和尾數(shù) 全為0表示。

????????????既然是必然的,那就沒(méi)有必要存儲(chǔ)。

????整數(shù)值丟失:規(guī)格化處理就是整數(shù)值丟失的地方。

????????很好解釋,你有100位的1,最后也只能存24位1(包括上文說(shuō)的丟棄的1和23位1)。

????????存入的時(shí)候丟棄1,讀取的時(shí)候按階碼補(bǔ)0,數(shù)據(jù)自然就丟失了。

????最后可能有小迷糊疑惑32位的數(shù)怎么整的大于32的位數(shù),這個(gè)位置是CPU提供的。

單精度浮點(diǎn)數(shù)應(yīng)用時(shí)的最大存儲(chǔ)整數(shù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
沾化县| 灌云县| 宁阳县| 靖边县| 龙泉市| 合江县| 石楼县| 绵阳市| 漳浦县| 喀什市| 濮阳市| 泗洪县| 鄢陵县| 公安县| 伽师县| 邻水| 辽阳市| 尉犁县| 舒兰市| 桃园市| 云梦县| 贵州省| 隆安县| 大埔县| 什邡市| 日土县| 千阳县| 会东县| 宜昌市| 巢湖市| 兰州市| 元阳县| 清新县| 太和县| 南江县| 南投市| 株洲市| 同江市| 台前县| 衢州市| 宜城市|