現場的(de)儀(yi)(yi)表(biao)(biao),比如積算儀(yi)(yi)、巡檢儀(yi)(yi)、無線鋼(gang)水測溫儀(yi)(yi)、無線稱重校驗儀(yi)(yi),送(song)出來的(de)數據(ju),有(you)的(de)是定點數,有(you)的(de)浮點數。作(zuo)為PLC或二次儀(yi)(yi)表(biao)(biao)、顯(xian)示大屏幕,都(dou)需要(yao)查詢它們的(de)瞬時值并(bing)顯(xian)示出來。
以(yi)二次(ci)數(shu)顯(xian)表為例,接收的(de)(de)它們(men)的(de)(de)數(shu)據后,需要轉換(huan)成BCD數(shu)進行顯(xian)示。定點(dian)數(shu)的(de)(de)接收與轉換(huan)比較簡單,浮點(dian)數(shu)由(you)于是由(you)階碼(ma)確定小數(shu)點(dian)的(de)(de)位置,所以(yi)在轉換(huan)過程中,稍微的(de)(de)增加了(le)點(dian)難(nan)度。
浮點(dian)數共4字節,32位(wei)
例如124.75,浮點數為42F98000H
|
4
|
2
|
F
|
9
|
8
|
0
|
0
|
0
|
0100
|
0010
|
1111
|
1001
|
1000
|
0000
|
0000
|
0000
|
字節3
|
字節2
|
字節1
|
字節0
|
|
|
|
|
|
|
|
|
字節3的(de)第7位表(biao)示符號,1表(biao)示負數(shu),0表示正(zheng)數
4個字節都左移(yi)一位
例(li)如124.75,浮點數為(wei)42F98000H
|
4
|
2
|
F
|
9
|
8
|
0
|
0
|
0
|
0100
|
0010
|
1111
|
1001
|
1000
|
0000
|
0000
|
0000
|
字節3
|
字節2
|
字節1
|
字節0
|
1000
|
0101
|
1111
|
0011
|
0000
|
0000
|
0000
|
000X
|
移位(wei)后此(ci)字節為(wei)階碼
|
這些是尾數
|
階碼-127=小數點移動的位(wei)數,85H=133,133-127=+6,正(zheng)數(shu)表示小(xiao)數(shu)點右移,負數(shu)表示小(xiao)數(shu)點左移。
尾數前(qian)面隱藏了一個1. 補齊后(hou)如下
字節3
|
字(zi)節2
|
字(zi)節1
|
字節(jie)0
|
|
1.
|
1111
|
0011
|
0000
|
0000
|
0000
|
000X
|
注意小數點
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小數點右移6位后如下
字節3
|
字節(jie)2
|
字節1
|
字節0
|
|
1
|
1111
|
00.11
|
0000
|
0000
|
0000
|
000X
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
現在把四個字(zi)節都左(zuo)移,使得整(zheng)數字(zi)節和小數字(zi)節分開,如下
字節3
|
字節2
|
字節1
|
字(zi)節0
|
111
|
1100
|
1100
|
0000
|
0000
|
0000
|
0XXX
|
|
整數字節
|
小數字節
|
|
|
|
|
|
|
|
|
整數轉(zhuan)換為十進制(zhi),7CH=124
小數字節高位(wei)定義(yi)為第(di)1位,以(yi)后為2 3 4 5 6.。。。。。。第1位=2^(-1),第(di)2位=2^(-2),第3位=2^(-2),第n位=2^(-n)