現(xiàn)場的儀表,比如積算儀、巡檢儀、無線鋼水測溫儀、無線稱重校驗儀,送出來的數(shù)據(jù),有的是定點數(shù),有的浮點數(shù)。作為PLC或二次儀表、顯示大屏幕,都需要查詢它們的瞬時值并顯示出來。
以二次數(shù)顯表為例,接收的它們的數(shù)據(jù)后,需要轉(zhuǎn)換成BCD數(shù)進行顯示。定點數(shù)的接收與轉(zhuǎn)換比較簡單,浮點數(shù)由于是由階碼確定小數(shù)點的位置,所以在轉(zhuǎn)換過程中,稍微的增加了點難度。
浮點數(shù)共4字節(jié),32位
例如124.75,浮點數(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位表示符號,1表示負數(shù),0表示正數(shù)
4個字節(jié)都左移一位
例如124.75,浮點數(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ù)點移動的位數(shù),85H=133,133-127=+6,正數(shù)表示小數(shù)點右移,負數(shù)表示小數(shù)點左移。
尾數(shù)前面隱藏了一個1. 補齊后如下
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
|
1. |
1111 |
0011 |
0000 |
0000 |
0000 |
000X |
注意小數(shù)點 |
|
|
|
|
|
|
|
小數(shù)點右移6位后如下
字節(jié)3 |
字節(jié)2 |
字節(jié)1 |
字節(jié)0 |
||||
|
1 |
1111 |
00.11 |
0000 |
0000 |
0000 |
000X |
|
|
|
|
|
|
|
|
現(xiàn)在把四個字節(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)換為十進制,7CH=124
小數(shù)字節(jié)高位定義為第1位,以后為2 3 4 5 6.。。。。。。第1位=2^(-1),第2位=2^(-2),第3位=2^(-2),第n位=2^(-n)