現(xiàn)場(chǎng)的儀表,比如積算儀、巡檢儀、無(wú)線鋼水測(cè)溫儀、無(wú)線稱重校驗(yàn)儀,送出來(lái)的數(shù)據(jù),有的是定點(diǎn)數(shù),有的浮點(diǎn)數(shù)。作為PLC或二次儀表、顯示大屏幕,都需要查詢它們的瞬時(shí)值并顯示出來(lái)。
以二次數(shù)顯表為例,接收的它們的數(shù)據(jù)后,需要轉(zhuǎn)換成BCD數(shù)進(jìn)行顯示。定點(diǎn)數(shù)的接收與轉(zhuǎn)換比較簡(jiǎn)單,浮點(diǎn)數(shù)由于是由階碼確定小數(shù)點(diǎn)的位置,所以在轉(zhuǎn)換過(guò)程中,稍微的增加了點(diǎn)難度。
浮點(diǎn)數(shù)共4字節(jié),32位
例如124.75,浮點(diǎn)數(shù)為42F98000H |
|||||||
4 |
2 |
F |
9 |
8 |
0 |
0 |
0 |
0100 |
0010 |
1111 |
1001 |
1000 |
0000 |
0000 |
0000 |
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
|
|
|
|
|
|
|
|
字節(jié)3的第7位表示符號(hào),1表示負(fù)數(shù),0表示正數(shù)
4個(gè)字節(jié)都左移一位
例如124.75,浮點(diǎn)數(shù)為42F98000H |
|||||||
4 |
2 |
F |
9 |
8 |
0 |
0 |
0 |
0100 |
0010 |
1111 |
1001 |
1000 |
0000 |
0000 |
0000 |
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
1000 |
0101 |
1111 |
0011 |
0000 |
0000 |
0000 |
000X |
移位后此字節(jié)為階碼 |
這些是尾數(shù) |
階碼-127=小數(shù)點(diǎn)移動(dòng)的位數(shù),85H=133,133-127=+6,正數(shù)表示小數(shù)點(diǎn)右移,負(fù)數(shù)表示小數(shù)點(diǎn)左移。
尾數(shù)前面隱藏了一個(gè)1. 補(bǔ)齊后如下
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
|
1. |
1111 |
0011 |
0000 |
0000 |
0000 |
000X |
注意小數(shù)點(diǎn) |
|
|
|
|
|
|
|
小數(shù)點(diǎn)右移6位后如下
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
|
1 |
1111 |
00.11 |
0000 |
0000 |
0000 |
000X |
|
|
|
|
|
|
|
|
現(xiàn)在把四個(gè)字節(jié)都左移,使得整數(shù)字節(jié)和小數(shù)字節(jié)分開(kāi),如下
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
111 |
1100 |
1100 |
0000 |
0000 |
0000 |
0XXX |
|
整數(shù)字節(jié) |
小數(shù)字節(jié) |
||||||
整數(shù)轉(zhuǎn)換為十進(jìn)制,7CH=124
小數(shù)字節(jié)高位定義為第1位,以后為2 3 4 5 6.。。。。。。第1位=2^(-1),第2位=2^(-2),第3位=2^(-2),第n位=2^(-n)