浮點(diǎn)數(shù)偏置值是什么 32位浮點(diǎn)數(shù)中為什么要設(shè)階碼偏移值?又為什么設(shè)為127,而不是其他數(shù),比如128?
32位浮點(diǎn)數(shù)中為什么要設(shè)階碼偏移值?又為什么設(shè)為127,而不是其他數(shù),比如128?讓我解釋一下為什么IEEE標(biāo)準(zhǔn)中8位順序碼的偏差是127。18位移碼的取值范圍為0~255(00000000~1111
32位浮點(diǎn)數(shù)中為什么要設(shè)階碼偏移值?又為什么設(shè)為127,而不是其他數(shù),比如128?
讓我解釋一下為什么IEEE標(biāo)準(zhǔn)中8位順序碼的偏差是127。18位移碼的取值范圍為0~255(00000000~11111111),但在浮點(diǎn)數(shù)的順序碼中,00000000和11111111是作為特例保留的,因此順序碼只能在1~254的范圍內(nèi)使用,共有254個(gè)值。28位有符號(hào)數(shù)的取值范圍為-128~127(10000000~01111111)。這里的二進(jìn)制是用補(bǔ)碼表示的。特別規(guī)定補(bǔ)碼10000000沒有原始碼,即-128的補(bǔ)碼,共256個(gè)值。三。如果使用偏移量128,則在表示127時(shí)會(huì)發(fā)生溢出(保留代碼移位11111),因此偏移量是順序代碼中的(128-1)。同時(shí),-127表示時(shí)會(huì)出現(xiàn)下溢(代碼移位00000000保留),所以從訂單代碼中去掉-127和-128,取值范圍為-126~127,共254個(gè)值。------------------------------------------另外,我想補(bǔ)充對(duì)32位浮點(diǎn)數(shù)據(jù)取值范圍的研究:最高位是符號(hào)位;索引:共8位,占30-23位;基:實(shí)際占24位,因?yàn)樗淖罡呶豢偸?,所以在沒有存儲(chǔ)的情況下省略了最高位,存儲(chǔ)中只有23位,占22~0位;當(dāng)所有22~0位都設(shè)置為1時(shí),基數(shù)得到最大值,接近2。當(dāng)所有22-0位都設(shè)置為0時(shí),基的最小值為1。因此,float type的取值范圍為:-2*2^127~-1*2^(-126)和1*2^(-126)~2*2^127,轉(zhuǎn)換為:-3.4*10^38~-1.2*10^(-38)和1.2*10^(-38)~3.4*10^38