最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

漢明碼編碼原理及校驗(yàn)方法分析

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

1.奇偶校驗(yàn)

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

例子:

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

2.漢明碼

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

注意:

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

在這里插入圖片描述

漢明碼怎么分組:

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

第1個(gè)位置,變成第0001個(gè)位置;

第2個(gè)位置,變成第0010個(gè)位置;

第3個(gè)位置,變成第0011個(gè)位置;

第4個(gè)位置,變成第0100個(gè)位置;

第5個(gè)位置,變成第0101個(gè)位置;

第6個(gè)位置,變成第0110個(gè)位置;

那么,規(guī)定來(lái)了,

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

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

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

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

那么顯然各個(gè)校驗(yàn)碼也被分到各個(gè)組里面去了,而且,每個(gè)組只有一個(gè)校驗(yàn)碼。

我舉個(gè)例子:

我們想傳這一組碼:XX1X101X011

一共11位。

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

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

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

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

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

那么確定了分組,校驗(yàn)碼的值也就順便確定下來(lái)了。

這樣整個(gè)串的碼就確定下來(lái)了。

校驗(yàn)碼的位置:

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

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

如圖:

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

在這里插入圖片描述

校驗(yàn)碼其實(shí)是每一個(gè)分組特有的,每個(gè)分組特有的也就只有校驗(yàn)碼

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

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

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

這樣我們就能算出來(lái)要用多少校驗(yàn)碼了。

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

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

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

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

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

2.分別對(duì)每個(gè)組校驗(yàn),沒(méi)有錯(cuò)的給它0,有錯(cuò)的給1.

3.記得第一個(gè)問(wèn)題,漢明碼的原理嗎?你可能會(huì)想,3個(gè)組,我們可以畫(huà)3個(gè)圈,可是100個(gè)組,這個(gè)圈可就太難畫(huà)了?。?/p>

這里有一個(gè)等價(jià)的方法,hamming真的太聰明了。

把P從大到小排列起來(lái),得到一串1010,

for example:

     組別:         P5   P4   P3   P2   P1

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

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

本例中,10101位置上的位錯(cuò)了,換成十進(jìn)制是第21個(gè)位置上的數(shù)錯(cuò)了。

然后,我們發(fā)現(xiàn)了它錯(cuò)誤的位置,又因?yàn)樗嵌M(jìn)制的,不是0就是1,所以,可以順便把它糾錯(cuò)。

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

相關(guān)文章

  • 史上最好用的遠(yuǎn)程桌面工具(附源碼)

    史上最好用的遠(yuǎn)程桌面工具(附源碼)

    今天給大家分享一款不錯(cuò)的遠(yuǎn)程控制工具向日葵遠(yuǎn)程桌面工具,支持多平臺(tái),跨網(wǎng)絡(luò),對(duì)向日葵遠(yuǎn)程桌面工具感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 前端工程Monorepo項(xiàng)目管理方式

    前端工程Monorepo項(xiàng)目管理方式

    這篇文章主要介紹了現(xiàn)代前端越來(lái)越離不開(kāi)的項(xiàng)目管理方式Monorepo的概念、MultiRepo的弊端、Monorepo的收益以及Monorepo的落地這幾個(gè)角度來(lái)認(rèn)識(shí)和學(xué)習(xí)Monorepo
    2022-07-07
  • 將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎

    將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎

    python的優(yōu)勢(shì)在于數(shù)據(jù)處理和人工智能等方向,所以go只可能吞噬Java的份額,很難撼動(dòng)Python的奶酪,所以將來(lái)會(huì)是Python、Java、Golang三足鼎立的局面嗎
    2019-04-04
  • 詳解DES&3DES算法的原理以及C#和JS的實(shí)現(xiàn)

    詳解DES&3DES算法的原理以及C#和JS的實(shí)現(xiàn)

    DES?全稱(chēng)為?Data?Encryption?Standard,即數(shù)據(jù)加密標(biāo)準(zhǔn),是一種使用密鑰加密的塊算法。3DES?算法通過(guò)對(duì)?DES?算法進(jìn)行改進(jìn),增加?DES?的密鑰長(zhǎng)度來(lái)避免類(lèi)似的攻擊。本文就來(lái)聊聊它們的原理與實(shí)現(xiàn)吧
    2023-03-03
  • 調(diào)用DeepSeek?API的詳細(xì)指南

    調(diào)用DeepSeek?API的詳細(xì)指南

    章詳細(xì)介紹了如何在DeepSeek開(kāi)放平臺(tái)上獲取API密鑰,并使用Apifox進(jìn)行API調(diào)試,步驟包括登錄平臺(tái)、創(chuàng)建和保存APIKey、配置Apifox環(huán)境變量、導(dǎo)入cURL并設(shè)置Authorization、發(fā)送請(qǐng)求以及根據(jù)需要修改參數(shù)實(shí)現(xiàn)對(duì)話和流式輸出,需要的朋友可以參考下
    2025-02-02
  • Maui Blazor 使用攝像頭實(shí)現(xiàn)代碼

    Maui Blazor 使用攝像頭實(shí)現(xiàn)代碼

    由于Maui Blazor中界面是由WebView渲染,所以再使用Android的攝像頭時(shí)無(wú)法去獲取,因?yàn)樵臄z像頭需要綁定界面組件,這篇文章主要介紹了Maui Blazor 使用攝像頭實(shí)現(xiàn),需要的朋友可以參考下
    2023-01-01
  • ASCII控制字符的介紹小結(jié)

    ASCII控制字符的介紹小結(jié)

    ASCII編碼中第0-31個(gè)字符以及第127個(gè)字符都是不可見(jiàn)的,,但是它們都具有一些特殊功能,所以稱(chēng)為控制字符,本文主要介紹了ASCII控制字符的介紹小結(jié)
    2024-06-06
  • MobaXterm入門(mén)使用教程

    MobaXterm入門(mén)使用教程

    MobaXterm就是一款SSH客戶端,它幫助我們?cè)赪indows操作系統(tǒng)下去連接并操作Linux服務(wù)器,本文主要介紹了MobaXterm入門(mén)使用教程,感興趣的可以了解一下
    2023-05-05
  • TypeScript類(lèi)型檢查詳談及火爆原因

    TypeScript類(lèi)型檢查詳談及火爆原因

    這篇文章主要為大家介紹了TypeScript類(lèi)型檢查以及火爆原因,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • vscode中使用Autoprefixer3.0無(wú)效的解決方法

    vscode中使用Autoprefixer3.0無(wú)效的解決方法

    這篇文章主要介紹了vscode中使用Autoprefixer3.0無(wú)效的解決方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06

最新評(píng)論

新邵县| 黔江区| 富裕县| 砚山县| 彭水| 呼伦贝尔市| 延庆县| 兰西县| 湖南省| 鲜城| 怀集县| 丽水市| 柘荣县| 汉源县| 平阴县| 丹凤县| 通江县| 沾益县| 梓潼县| 皮山县| 隆化县| 微博| 泽库县| 岳西县| 昔阳县| 班玛县| 芦山县| 日土县| 温泉县| 周口市| 弥勒县| 洪湖市| 同仁县| 临泽县| 陈巴尔虎旗| 耿马| 双峰县| 龙井市| 景泰县| 鹤岗市| 鹤岗市|