246h
級別: 探索解密
|
為了節(jié)省存儲數(shù)據(jù)所占用的空間,可對數(shù)據(jù)編碼長度進(jìn)行壓縮,數(shù)據(jù)經(jīng)過壓縮后再進(jìn)行存儲,即壓縮存儲。壓縮存儲不但節(jié)省了存儲空間,另一方面也節(jié)省了數(shù)據(jù)傳輸?shù)拈_銷。一般來說,只要清楚數(shù)據(jù)的壓縮方式,上位計算機(jī)就能夠方便地進(jìn)行解壓縮。 對于PLC而言,最基本的數(shù)據(jù)壓縮技術(shù)有以下三類。 (1)用十六進(jìn)制碼代替BCD碼:BCD碼是采用4位二進(jìn)制數(shù)來表示一位十進(jìn)制數(shù)0-9的編碼方式,而實際上4位二進(jìn)制數(shù)可以表示16個不同數(shù)碼,所以采用BCD碼存取數(shù)存在資源浪費。如16位二進(jìn)制數(shù)(一個字),用以表示BCD碼數(shù),最大只能到9999;而表示普通二進(jìn)制數(shù),轉(zhuǎn)為十進(jìn)制數(shù)最大可達(dá)65535。 (2)合并數(shù)據(jù)代替單獨數(shù)據(jù):存儲普通日期數(shù)據(jù),一般需要4個字節(jié),如2009年10月1日,則2009需要2個字節(jié),10需要1個字節(jié),1需要1個字節(jié),如不考慮千年,需用3個字節(jié)存儲,如果把這些數(shù)據(jù)合并后再進(jìn)行存儲,就無需3個或4個字節(jié)了。 數(shù)據(jù)合并時,可將各合并數(shù)先加權(quán)再相加,如年可乘400(為計算方便,一年最多366天),月可乘40(一個月最多31天),2009、10、l合并可得9×400+10×40+1=4001,2個字節(jié)就足夠存儲了。數(shù)據(jù)還原時,可用合并數(shù)分別被400整除得年份,被40整除得月份(不夠需借位),余數(shù)為日期。 問題是:4001被400整除應(yīng)該是10啊,怎么還原到9?同樣月份怎么還原到10? 請高手幫忙。謝謝 [ 此帖被246h在2013-10-05 13:53重新編輯 ] |
---|---|
|