簡介
位填充簡單來說是指用“0”或“1”來填充數據未使用的二進制位。在計算機中,不是所有數據都能夠完全使用所有的二進制位。例如,1是整數型數據,在計算機中,記憶體為1分配了32個位記憶體大小,實際上1隻占據一個位,為了使1被識別是整數型數據,剩餘位就要採用位填充的方法進行填充。在計算機網路中,位填充也稱為比特填充。
位
二進制數系統中,位簡記為b,也稱為比特,每個二進制數字0或1就是一個位(bit)。位是數據存儲的最小單位,其中8 bit 就稱為一個位元組(Byte)。計算機中的CPU位數指的是CPU一次能處理的最大位數。例如32位計算機的CPU一個機器周期內可以處理32位二進制數據的計算機。
位填充技術
在HDLC的幀結構中,帶填充位的首尾標誌法允許數據幀包含任意個位,而且也允許每個字元的編碼包含任意個位,採用統一的幀格式,以特定的位序列進行幀同步和定界。帶填充位的首尾標誌法工作原理是:每一幀使用一個特殊的位模式,即01111110作為開始和結束標誌位元組。當傳送的數據鏈層在數據中遇到5個連續的1時,自動在其後插入一個0到輸出比特流中,這叫位填充技術。當接收方看到5個連續的1後面跟著一個0時。自動將此0刪除 。
幀的頭部有8位標識符,其以01111110模式在幀的兩端起定界作用。某個標誌欄位可能既是一個幀的結束標誌,也是下一個幀的起始標誌。在接收一個幀時,站點也要繼續搜尋這個序列,以判斷這個幀的階數。而HDLC協定中允許存在任意的二進制比特序列,所以01111110模式可能出現在幀中間的某個地方,從而破壞同步。為了避免這種情況,使用了位填充。
方法:在幀的傳輸起始標誌和結束標誌之間,每當出現5個1之後,傳送器就會插入一個附加的0.一旦有5個1模式出現,就會檢查第6個比特。若為0,該比特將被刪除。若為1,且第7個比特為0,那么這個組合被認為是標誌欄位。若第六位和第七位都為1,則此時處於異常終止狀態。
比特填充方式
當同步數據信號與數據端局的時鐘是異步關係時,可以用緩衝存儲器使輸入輸出信號同步。其原理是首先將多路數據信號復用成一次群,然後以其脈衝速率將一次群輸入數據信號寄入快取器。當輸入速率比緩衝存儲器的讀出速率稍慢時,會出現信號尚未到達就要讀出的情況 , 這時就要插入填充脈衝,並把填沖脈衝的信息傳到接收端。接收端收到填充指示信息就抹去該填電路交換,充脈衝,然後把脈衝展成一定間隔,從而恢復原始數據信號。這種方法只限於 傳輸同步數據信號。
數的機器碼
原碼
電子計算機中數的一種表示形式。數的原碼形式除掉其符號表示位外與原來數的絕對值形式一樣,只是數的正負符號分別用“0”和“1”表示。例如,+46的二進制數原碼錶示為00100110,而-46的二進制數原碼錶示為10100110(第一位為符號表示位)。數值“0”則有兩種原碼錶示:“+0”為00000000;“-0”為10000000.原碼錶示法對於數的乘除運算相當方便,但對加減運算則較複雜。在兩個數進行加減運算時,需要判定它們的符號和絕對值大小才能確定操作關係和操作類型。為了簡化處理機的加減運算,通常很少採用原碼錶示法,而是採用二進制補碼或二進制反碼錶示數據 。
補碼
計算機中一種數的表示形式。在基數計數制中,從基數減1後分別減去某數的每一位數字,然後再加1所得到的數.對於正數,其二進制補碼的表示式和原碼相同;對於負數,其補碼錶示式是將其反碼的最低位再加1而得到。例如,二進制數00101110的補碼仍為00101110;10101110的反碼是11010001,其補碼為11010001+1=11010010.在補碼錶示式中,數值0的補碼是惟一的,即00000000(全零)。補碼錶示法對正負數的加減運算相當方便。利用補碼可使減法運算轉化為加法運算,這樣在計算機中就可用加法器來進行加減運算。
反碼
亦稱基數減1補碼。計算機中數的表示形式之一,是基數計數制中以基數減1後分別減去每一位數字後所得到的數。例如,二進制計數制中,基數是2,基數減1為1,則-0101101的反碼是111111-0101101=1010010;十進制計數制中,基數是10,基數減1為9,則-0543的反碼是9999-0543=9456。對於正數,二進制反碼的表示式和原碼相同;對於負數,其二進制反碼錶示式是將二進制數值表示式中的0改為1,1改為0,再冠以負號1.例如00101110的反碼仍為00101110;10101110的反碼為11010001。