欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

漢明碼編碼原理及校驗方法分析

 更新時間:2021年09月16日 11:20:51   作者:祈禱ovo  
漢明碼在傳輸?shù)南⒘髦胁迦腧炞C碼,當(dāng)計算機存儲或移動數(shù)據(jù)時,可能會產(chǎn)生數(shù)據(jù)位錯誤,以偵測并更正單一比特錯誤。由于漢明編碼簡單,它們被廣泛應(yīng)用于內(nèi)存RAM

1.奇偶校驗

我們約定一串編碼里1的個數(shù)是偶數(shù)個,那么這串編碼里攜帶的信息就是對的,否則就是錯的。我們可以在開頭對這串編碼加一位校驗碼實現(xiàn)奇偶校驗。

例子:

我們想傳輸10010這串碼,那么在傳輸?shù)臅r候,就傳010010,其中在開頭的0就是校驗位。
我們想傳輸10000這串碼,那么在傳輸?shù)臅r候,就傳110000,其中在開頭的1就是校驗位。
兩個例子的1的個數(shù)都是偶數(shù)。

2.漢明碼

首先漢明碼是采用奇偶校驗的碼。它采用了一種非常巧妙的方式,把這串?dāng)?shù)字分了組,通過分組校驗來確定哪一位出現(xiàn)了錯誤。并且能對錯誤的位置進行改正

注意:

漢明碼默認一串?dāng)?shù)據(jù)只錯一位

在這里插入圖片描述

漢明碼怎么分組:

我們看到,其實有些數(shù)據(jù)是既在P1組又在P2組的。怎么分組,這個要記住,沒啥原理了哈哈。要預(yù)先做的工作是,把表示位置的這個數(shù),轉(zhuǎn)化成二進制數(shù),也就是:

第1個位置,變成第0001個位置;

第2個位置,變成第0010個位置;

第3個位置,變成第0011個位置;

第4個位置,變成第0100個位置;

第5個位置,變成第0101個位置;

第6個位置,變成第0110個位置;

那么,規(guī)定來了,

凡是位置符合這種形式的,XXX1,歸到P1;

凡是位置符合這種形式的,XX1X,歸到P2;

凡是位置符合這種形式的,X1XX,歸到P3;

凡是位置符合這種形式的,1XXX,歸到P4;

那么顯然各個校驗碼也被分到各個組里面去了,而且,每個組只有一個校驗碼。

我舉個例子:

我們想傳這一組碼:XX1X101X011

一共11位。

標(biāo)X的是校驗碼的位置,我們暫時不知道它的值是多少。

位置在1,3,5,7,9,11的數(shù)據(jù)進到P1組。(你轉(zhuǎn)換一下這些位置的二進制,就知道他們的位置符合XXX1)

位置在2,3,6,7,10,11的數(shù)據(jù)進到P2組。(位置符合XX1X)

位置在4,5,6,7的數(shù)據(jù)進到P3組。(位置符合X1XX)

位置在8,9,10,11的數(shù)據(jù)進到P4組。(位置符合1XXX)

那么確定了分組,校驗碼的值也就順便確定下來了。

這樣整個串的碼就確定下來了。

校驗碼的位置:

這是規(guī)定,記住它,在采用漢明碼的一串?dāng)?shù)據(jù)中,2的i次方的位置上,我們放校驗碼。

校驗碼是1,或者是0,使得校驗碼所在的組的1的個數(shù)是偶數(shù)。

如圖:

綠色的位置是放校驗碼的地方,1,2,4,8,16……等等,2的i次方的地方。

在這里插入圖片描述

校驗碼其實是每一個分組特有的,每個分組特有的也就只有校驗碼

從發(fā)送者的角度,我該怎么發(fā)用上漢明碼的數(shù)據(jù)呢:

首先我們考慮我們到底要發(fā)多少位。假設(shè)校驗碼一共k位,我們想發(fā)的原始數(shù)據(jù)一共n位,要注意我們的校驗碼也要校驗校驗碼錯沒錯,所以,要校驗的一共有k+n位,k位校驗碼可以檢測2^k位的碼,但是不能所以,校驗碼的位數(shù)要滿足這個公式

2 k > k + n 2^k>k+n 2k>k+n,或者說 2 k − 1 ≥ k + n 2^{k}-1 \geq k+n 2k−1≥k+n

這樣我們就能算出來要用多少校驗碼了。

其實哈,實際上不用這么麻煩,教科書總是那么復(fù)雜。假設(shè)你想發(fā)101011111,那你就先占下校驗位,然后空著的位填你想發(fā)的數(shù)據(jù)就好。

占下1,2,4,8……等等位,看能占下多少位就可以,當(dāng)然這個手算比較直觀啦哈。

好,我假設(shè)你填完了,然后分好組,也確定了校驗位的值了,那么發(fā)送出去啦~

我是接收者,我收到了一串漢明碼,怎樣用漢明碼的性質(zhì)來檢錯呢:

1.分組,分好P1,P2,P3……

2.分別對每個組校驗,沒有錯的給它0,有錯的給1.

3.記得第一個問題,漢明碼的原理嗎?你可能會想,3個組,我們可以畫3個圈,可是100個組,這個圈可就太難畫了??!

這里有一個等價的方法,hamming真的太聰明了。

把P從大到小排列起來,得到一串1010,

for example:

     組別:         P5   P4   P3   P2   P1

     標(biāo)志:         1    0     1    0    1

從大到小排列起來,標(biāo)志排成了一串一零串。這個數(shù)就是出錯的數(shù)據(jù)的位置。

本例中,10101位置上的位錯了,換成十進制是第21個位置上的數(shù)錯了。

然后,我們發(fā)現(xiàn)了它錯誤的位置,又因為它是二進制的,不是0就是1,所以,可以順便把它糾錯。

以上就是漢明碼編碼原理及校驗方法分析的詳細內(nèi)容,更多關(guān)于漢明碼編碼及校驗的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 好用的VSCode頭部注釋插件Fileheader?Pro

    好用的VSCode頭部注釋插件Fileheader?Pro

    這篇文章主要為大家介紹了VSCode頭部注釋插件Fileheader?Pro的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • typescript?實現(xiàn)RabbitMQ死信隊列和延遲隊列(訂單10分鐘未付歸還庫存)的過程

    typescript?實現(xiàn)RabbitMQ死信隊列和延遲隊列(訂單10分鐘未付歸還庫存)的過程

    RabbitMQ作為一款流行的消息隊列服務(wù),提供了死信隊列(Dead?Letter?Exchange)功能,能夠有效地處理消息被拒絕、消息過期以及隊列達到最大長度等情況,本文將介紹如何利用RabbitMQ的死信隊列來處理這三種情況,并提供了TypeScript示例代碼,需要的朋友可以參考下
    2024-03-03
  • bower 強大的管理web包管理工具

    bower 強大的管理web包管理工具

    bower是twitter的又一個開源項目,使用nodejs開發(fā),用于web包管理。如果越來越多得開源項目都托管在github上,bower只需要將github上項目加上一個配置文件既可以使用bower方式使用安裝包
    2013-12-12
  • 獻給寫作者的 Markdown 新手指南

    獻給寫作者的 Markdown 新手指南

    Markdown 是一種「電子郵件」風(fēng)格的「標(biāo)記語言」,我們強烈推薦所有寫作者學(xué)習(xí)和掌握該語言。為什么
    2016-08-08
  • Jenkins部署war包和部署jar包的詳細步驟

    Jenkins部署war包和部署jar包的詳細步驟

    這篇文章主要介紹了Jenkins部署war包和部署jar包的詳細步驟,本恩分步驟通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Delphi 本地路徑的創(chuàng)建、清空本地指定文件夾下的文件

    Delphi 本地路徑的創(chuàng)建、清空本地指定文件夾下的文件

    這篇文章主要介紹了Delphi 本地路徑的創(chuàng)建、清空本地指定文件夾下的文件,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • 總結(jié)一些你可能不知道的ip地址

    總結(jié)一些你可能不知道的ip地址

    IP對大家來說應(yīng)該再熟悉不過了,但其實IP地址有一些不為人知的事情,可能你并不知道。例如短IP、不同進制的ip等,所以下面這篇文章主要給大家總結(jié)介紹了一些你可能不知道的ip地址知識,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • 滑動驗證碼的設(shè)計與理解

    滑動驗證碼的設(shè)計與理解

    這篇文章主要介紹了滑動驗證碼的設(shè)計與理解,本文通過實例代碼給大家介紹小網(wǎng)站是怎么設(shè)計的,代碼簡單易懂,需要的朋友可以參考下
    2019-08-08
  • 微信支付、支付寶支付等常用第三方支付通道接口手續(xù)費對比

    微信支付、支付寶支付等常用第三方支付通道接口手續(xù)費對比

    微信支付、支付寶等第三方支付,需要和銀聯(lián)、網(wǎng)聯(lián)對接,有清算機構(gòu)和銀行的交易處理通道成本。費率指支付手續(xù)費的費率,不同行業(yè)、不同的支付平臺、不同的支付額度或次數(shù)所對應(yīng)的通道費率是不一樣的。
    2023-01-01
  • GBK字符編碼(字符集)缺陷導(dǎo)致web安全漏洞

    GBK字符編碼(字符集)缺陷導(dǎo)致web安全漏洞

    很多時候,一個web站點,選擇什么樣的字符編碼,我們不會太過在意的。象中文網(wǎng)站,我們一般用gb2312,gbk,gb18030,也可以用utf-8。但是,可能我們不知道,選擇不同編碼,可能因此導(dǎo)致程序本身設(shè)計缺陷
    2016-06-06

最新評論