現(xiàn)場的儀表,比如積算儀、巡檢儀、無線鋼水測溫儀、無線稱重校驗(yàn)儀,送出來的數(shù)據(jù),有的是定點(diǎn)數(shù),有的浮點(diǎn)數(shù)。作為PLC或二次儀表、顯示大屏幕,都需要查詢它們的瞬時(shí)值并顯示出來。
以二次數(shù)顯表為例,接收的它們的數(shù)據(jù)后,需要轉(zhuǎn)換成BCD數(shù)進(jìn)行顯示。定點(diǎn)數(shù)的接收與轉(zhuǎn)換比較簡單,浮點(diǎn)數(shù)由于是由階碼確定小數(shù)點(diǎn)的位置,所以在轉(zhuǎn)換過程中,稍微的增加了點(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é)分開,如下
字節(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)