yijun8
級(jí)別: 探索解密
|
MX Compent v4.04 32位浮點(diǎn)數(shù)據(jù)的讀與寫?有誰(shuí)會(huì)? |
---|---|
|
john42tw
級(jí)別: 網(wǎng)絡(luò)英雄
|
PLC中實(shí)數(shù)(浮點(diǎn)數(shù))為2個(gè)D所組成 。 實(shí)數(shù)範(fàn)圍:0,±2-127 ~ ±2129 (±1.175E-38~±3.402E+38) 例 :某浮點(diǎn)數(shù) 2進(jìn)位 = 0100 0010 1010 0010 0000 0000 0000 0000 若是以float precision 格式的話 其中,bit 31 為符號(hào)位元 (sign bit),「0」代表正號(hào),「1」代表負(fù)號(hào)。 bit 23 到 bit 30 為指數(shù)欄位 (exponent field),總共 8 個(gè)位元。這個(gè)欄位使用「excess-127碼」來(lái)儲(chǔ)存以 2 為底的指數(shù),也就是說(shuō),先將真正的指數(shù)再加上 127 之後,才會(huì)存入此欄位中。 例如,若指數(shù)為 0,則將 0+127 = 127。 bit 0 到 bit 22 為尾數(shù)欄位 (mantissa field; 亦稱為 significand field; 有效數(shù)欄位、或 fraction field; 小數(shù)欄位),總共 23 個(gè)位元。資料存入這個(gè)欄位之前,需經(jīng)過正規(guī)化的運(yùn)算。 因此反推~ 0100 0010 1010 0010 0000 0000 0000 0000 符號(hào) 0 => 為正數(shù) 0100 0010 1 010 0010 0000 0000 0000 0000 指數(shù) 10000101 = 133 133-127=6 0100 0010 1010 0010 0000 0000 0000 0000 尾數(shù)欄位 010 0010 0000 0000 0000 0000 為固定補(bǔ)1=> 1010 0010 0000 0000 0000 0000 => 1* 26+0* 25+1* 24+0* 23+ 0* 22+0* 21+1* 20+0* 2-1+0* 2-2+….….. +0* 2-25 (6~ -25共32位) =1*64+0*32+1*16+0*8+0*4+0*2+1*1+0*(1/2)+0*(1/4)+0*(1/8)…………….. = 64 + 0 + 16 + 0 + 0 + 0 + 1 + 0 + 0 + 0 ……………. = 81 [ 此帖被john42tw在2014-07-21 13:03重新編輯 ] |
---|---|
|