編碼 隱匿在計算機軟硬體背後的語言 2 二進位制

2021-07-24 21:13:32 字數 1672 閱讀 8047

1位元是可能存在的最小的資訊量,任何小於1位元的內容根本算不上是資訊。

資訊是指多個可能性中的一種。

最常見的二進位制數的表現形式也許就是無處不在的通用產品**(upc,universal product code)。

有趣的是,upc也是二進位製碼,雖然乍看起來不太像。下面看看upc是怎樣工作的,就會明白。

以下圖所示的upc為例。

我們試著這樣解讀,將upc看作一系列位元位。將黑色條紋看作1,白色間隙看作0,;由於黑條紋的寬度和白間隙的寬度是成倍數的,寬條紋的寬度是窄條紋的二倍三倍,將最窄的條紋作為基元。將上圖的乙個斷面取出如下所示。

實際上,計算機掃瞄時正式這樣處理的,轉換後本例中的條紋和位元位之間的關係可以如下表示。

整個upc一共95位二進位制數,起初的3個位元通常是1 0 1,這就是最左邊的護線,它幫助計算機掃瞄器定位。從護線中,掃瞄器可以知道代表單個位元的條或間隙的寬度,所有包裝上的upc印刷大小都是一樣的。

最左邊的護線之後是6組位元串,每串7個位元位。每一組代表0-9中的乙個數字。就下來是5個位元位的中間護線,通常是01010,它是乙個內建的檢錯碼,預防條形碼被篡改或印錯。中間護線後又是6組位元串,每組7個位元位,最右邊是右側護線,共3位,101。

對於中間護線左右兩側的6組位元串,可以用下面的圖示方法進行編碼。

左邊的編碼方式中,以0開頭,以1結尾,而且採用奇校驗,每組1的個數都是奇數個。右邊的編碼方式都是以1開頭,以0結尾,而且是左邊編碼對應的反碼,採用偶校驗。利用上面兩個編碼表,我們解碼後的數字是

0  51000  01251  7

這一串數字與條形碼下面的數字一模一樣,這並非巧合。

上面的這串數字的第乙個數字被稱為數字系統符。接下來5個表示製造商編碼,後5位是該廠商的商品編碼。最後一位數字按下圖所示的方式計算。

用a-k表示這11個數字。

按下列方式組合計算

代入資料

然後用最接近這個結果的10 的整數倍(這裡是30)減去這個數

也就是30-23=7,正好是最後一位數字。

這樣upc總共使用95個位元位來表示11位有效的十進位制數,實際上upc左右護線兩側還有空白位置。之所以加入這些冗餘是為了安全,如果條形碼雖已被改動就沒有任何意義了。

當從右向左掃瞄時,編碼方式反之即可。編碼表如下所示,

條形碼本質上使用二進位制描述的,莫爾斯碼也是如此。把莫爾斯碼的點和划以及兩者之間的空白看作二進位制的0和1也會有類似的表述方式。

雖然乙個位元位只能表示兩種狀態,但是二進位制的位元可以做的事情太多了。0和1無處不在。

計算機神書 編碼 隱匿在計算機軟硬體背後的語言

在知乎回答了乙個關於書籍推薦的問題 有哪些短小精悍的好書推薦?如果只推薦一本計算機類的神書,那必然是 編碼 隱匿在計算機軟硬體背後的語言 渴望交流是大多數人的天性。在本書中,編碼 通常指一種在人和機器之間進行資訊轉換的系統。換句話說 編碼即是交流。有時我們將編碼看得很神秘,其實大多數編碼並非都是這樣...

計算機神書 編碼 隱匿在計算機軟硬體背後的語言

在知乎回答了乙個關於書籍推薦的問題 有哪些短小精悍的好書推薦?如果只推薦一本計算機類的神書,那必然是 編碼 隱匿在計算機軟硬體背後的語言 渴望交流是大多數人的天性。在本書中,編碼 通常指一種在人和機器之間進行資訊轉換的系統。換句話說 編碼即是交流。有時我們將編碼看得很神秘,其實大多數編碼並非都是這樣...

計算機神書 編碼 隱匿在計算機軟硬體背後的語言

在知乎回答了乙個關於書籍推薦的問題 有哪些短小精悍的好書推薦?如果只推薦一本計算機類的神書,那必然是 編碼 隱匿在計算機軟硬體背後的語言 渴望交流是大多數人的天性。在本書中,編碼 通常指一種在人和機器之間進行資訊轉換的系統。換句話說 編碼即是交流。有時我們將編碼看得很神秘,其實大多數編碼並非都是這樣...