女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

奇偶校驗(yàn)的優(yōu)缺點(diǎn)及奇偶校驗(yàn)代碼實(shí)現(xiàn)

嵌入式應(yīng)用開發(fā) ? 來源:嵌入式應(yīng)用開發(fā) ? 作者:嵌入式應(yīng)用開發(fā) ? 2022-06-18 18:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

奇偶校驗(yàn)需要一位校驗(yàn)位,即使用串口通信的方式2或方式3(8位數(shù)據(jù)位+1位校驗(yàn)位)。

奇校驗(yàn)(odd parity):讓傳輸?shù)臄?shù)據(jù)(包含校驗(yàn)位)中1的個(gè)數(shù)為奇數(shù)。

即:如果傳輸字節(jié)中1的個(gè)數(shù)是偶數(shù),則校驗(yàn)位為“1”,奇數(shù)相反。

以發(fā)送字符:10101010為例

pYYBAGKtpaGALXtWAABMyPR8Bw0064.jpg

偶校驗(yàn)(even parity):讓傳輸?shù)臄?shù)據(jù)(包含校驗(yàn)位)中1的個(gè)數(shù)為偶數(shù)。

即:如果傳輸字節(jié)中1的個(gè)數(shù)是偶數(shù),則校驗(yàn)位為“0”,奇數(shù)相反。

還是以發(fā)送字符:10101010為例

poYBAGKtpaGASc73AABKhJU49Ck446.jpg

數(shù)據(jù)和校驗(yàn)位發(fā)送給接受方后,接收方再次對(duì)數(shù)據(jù)中1的個(gè)數(shù)進(jìn)行計(jì)算,如果為奇數(shù)則校驗(yàn)通過,表示此次傳輸過程未發(fā)生錯(cuò)誤。如果不是奇數(shù),則表示有錯(cuò)誤發(fā)生,此時(shí)接收方可以向發(fā)送方發(fā)送請求,要求重新發(fā)送一遍數(shù)據(jù)。

優(yōu)缺點(diǎn):

  • 奇偶校驗(yàn)的檢錯(cuò)率只有50%,因?yàn)橹挥衅鏀?shù)個(gè)數(shù)據(jù)位發(fā)生變化能檢測到,如果偶數(shù)個(gè)數(shù)據(jù)位發(fā)生變化則無能為力了╮(╯﹏╰)╭
  • 奇偶校驗(yàn)每傳輸一個(gè)字節(jié)都需要加一位校驗(yàn)位,對(duì)傳輸效率影響很大。
  • 奇偶校驗(yàn)只能發(fā)現(xiàn)錯(cuò)誤,但不能糾正錯(cuò)誤,也就是說它只能告訴你出錯(cuò)了,但不能告訴你怎么出錯(cuò)了,一旦發(fā)現(xiàn)錯(cuò)誤,只好重發(fā)。
  • 雖然奇偶校驗(yàn)有很多缺點(diǎn),但因?yàn)槠涫褂闷饋硎趾唵?,故目前仍被廣泛使用。

應(yīng)用:

如何用編程確定一個(gè)字節(jié)中“1”個(gè)數(shù)的奇偶性?我們可以利用二進(jìn)制數(shù)相加的特點(diǎn):

0+0=0、1+0=1、1+1=0

可以看出,如果我們將一個(gè)字節(jié)的所有位相加

  • 有奇數(shù)個(gè)“1”的字節(jié)的和為1
  • 有偶數(shù)個(gè)“1”的字節(jié)的和為0

由此即可通過編程完成判斷。實(shí)際應(yīng)用中,實(shí)現(xiàn)方法很多,但這是相對(duì)簡單的一種,這里不再贅述。

代碼實(shí)現(xiàn)部分如下:

#include
#include

unsigned char add(char data)//奇校驗(yàn) 
{
    int i, cnt = 0;

    for (i = 0; i < 7; i++)//一個(gè)char型有7位
    {
        int temp = ((data >> i) & 1);//data >> i是向右移i個(gè)位置得到的值,((data >> i) & 1)是與1不同的個(gè)數(shù)
        cnt += temp;//cnt記錄二進(jìn)制下data中1的個(gè)數(shù)
    }

    unsigned char ans = data << 1;//左移1位 
    
    if (cnt % 2 == 0)//當(dāng)cnt能夠被2整除,即cnt是偶數(shù),即1的個(gè)數(shù)是偶數(shù)
    {
        ans += 1;//在最右邊加1
    }
    else//當(dāng)cnt不能夠被2整除,即cnt是奇數(shù),即1的個(gè)數(shù)是奇數(shù)
    {
        ans += 0;//在最右邊加0
    }
    return ans;
}

unsigned char add_2(char data)//偶校驗(yàn) 
{
    int i, cnt = 0;

    for (i = 0; i < 7; i++)//一個(gè)char型有7位
    {
        int temp = ((data >> i) & 1);//data >> i是向右移i個(gè)位置得到的值,((data >> i) & 1)是與1不同的個(gè)數(shù)
        cnt += temp;//cnt記錄二進(jìn)制下data中1的個(gè)數(shù)
    }

    unsigned char ans = data << 1;//左移1位 
    
    if (cnt % 2 == 0)//當(dāng)cnt能夠被2整除,即cnt是偶數(shù),即1的個(gè)數(shù)是偶數(shù)
    {
        ans += 0;//在最右邊加0
    }
    else//當(dāng)cnt不能夠被2整除,即cnt是奇數(shù),即1的個(gè)數(shù)是奇數(shù)
    {
        ans += 1;//在最右邊加1
    }
    return ans;
}

int main()
{
    char a;
    unsigned char b;
    scanf("%c", &a);
    b = add(a);
    printf("2進(jìn)制結(jié)果表示為:");//輸出b的2進(jìn)制表示
    for (int i = 7; i >= 0; i--) {
        if (((b>>i) & 1) == 1)
            printf("1");
        else
            printf("0");
    } putchar(10);
    
    return 0;
}

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式C
    +關(guān)注

    關(guān)注

    0

    文章

    6

    瀏覽量

    6922
  • 奇偶校驗(yàn)
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    8321
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    芯知識(shí)|廣州唯創(chuàng)電子語音芯片通信控制方式解析:多模式選擇與工程適配指南

    9600(可調(diào)整)支持復(fù)雜指令集:包括文件索引播放、插播、音量32級(jí)調(diào)節(jié)、循環(huán)模式設(shè)置等數(shù)據(jù)格式:起始位1位+數(shù)據(jù)位8位+停止位1位(無奇偶校驗(yàn)位)適用場景:需MCU
    的頭像 發(fā)表于 06-27 08:52 ?149次閱讀
    芯知識(shí)|廣州唯創(chuàng)電子語音芯片通信控制方式解析:多模式選擇與工程適配指南

    基于Verilog語言實(shí)現(xiàn)CRC校驗(yàn)

    CRC即循環(huán)冗余校驗(yàn)碼:是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯(cuò)功能,對(duì)數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的算
    的頭像 發(fā)表于 03-24 10:36 ?1340次閱讀
    基于Verilog語言<b class='flag-5'>實(shí)現(xiàn)</b>CRC<b class='flag-5'>校驗(yàn)</b>

    請問DAC3484的LVDS數(shù)字接口如何區(qū)分4個(gè)信道?

    我會(huì)使用WORD-WIDE FORMAT格式,F(xiàn)PGA輸出數(shù)字信號(hào)給DAC3484,但是如何區(qū)分A B C D4個(gè)信道啊,時(shí)鐘DDR的雙沿只能區(qū)分兩個(gè),4個(gè)還需要一個(gè)指示信號(hào)???datasheet看不出來,F(xiàn)RAMEP/N SYNCP/N講的不是很明白好像說是同步和奇偶校驗(yàn)用的。
    發(fā)表于 01-09 06:07

    RAID 5 磁盤陣列的組成

    奇偶校驗(yàn)信息來提高性能和容錯(cuò)能力。 RAID 5的基本概念 RAID 5是一種基于奇偶校驗(yàn)的RAID級(jí)別,它將數(shù)據(jù)和奇偶校驗(yàn)信息分布在多個(gè)磁盤上。這種分布方式允許RAID 5陣列在一塊磁盤發(fā)生故障時(shí)繼續(xù)運(yùn)行,并能夠重建丟失的數(shù)
    的頭像 發(fā)表于 12-27 17:06 ?1255次閱讀

    RAID 5 性能優(yōu)化技巧

    RAID 5是一種廣泛使用的磁盤陣列配置,它通過在多個(gè)硬盤之間分散數(shù)據(jù)和奇偶校驗(yàn)信息來提供數(shù)據(jù)冗余和性能提升。然而,RAID 5的性能受到多種因素的影響,包括硬件選擇、配置、操作系統(tǒng)優(yōu)化等。 1.
    的頭像 發(fā)表于 12-27 17:05 ?1856次閱讀

    RAID 5 技術(shù)優(yōu)勢與應(yīng)用

    在現(xiàn)代數(shù)據(jù)中心和企業(yè)級(jí)存儲(chǔ)解決方案中,數(shù)據(jù)的可靠性、性能和可用性是至關(guān)重要的。RAID 5 作為一種流行的 RAID 配置,通過在多個(gè)硬盤上分散數(shù)據(jù)和奇偶校驗(yàn)信息,提供了這些關(guān)鍵特性。 一、RAID
    的頭像 發(fā)表于 12-27 17:01 ?1393次閱讀

    串口通訊異常處理方法 串口設(shè)備連接方式

    串口通信異常處理方法 1. 異常檢測 在串口通信中,首先需要能夠檢測到異常情況。異常檢測可以通過以下幾種方式實(shí)現(xiàn): 硬件檢測 :利用串口硬件的中斷和狀態(tài)寄存器來檢測異常,如接收到錯(cuò)誤幀、奇偶校驗(yàn)錯(cuò)誤
    的頭像 發(fā)表于 12-27 09:53 ?3898次閱讀

    dac161p997這幾個(gè)寄存器全配置為0,當(dāng)發(fā)生錯(cuò)誤時(shí),dac161p997會(huì)不會(huì)依據(jù)錯(cuò)誤的數(shù)據(jù)進(jìn)行輸出?

    請問dac161p997這幾個(gè)寄存器全配置為0,當(dāng)發(fā)生錯(cuò)誤時(shí)(比如奇偶校驗(yàn)),dac161p997會(huì)不會(huì)依據(jù)錯(cuò)誤的數(shù)據(jù)進(jìn)行輸出?
    發(fā)表于 12-06 08:12

    raid 硬盤陣列優(yōu)缺點(diǎn)

    、提高性能或兩者兼顧。以下是關(guān)于RAID硬盤陣列的優(yōu)缺點(diǎn)的介紹: RAID的優(yōu)點(diǎn): 數(shù)據(jù)冗余和容錯(cuò)能力 : RAID 1(鏡像)和RAID 5(帶奇偶校驗(yàn)的條帶)等配置可以在硬盤故障時(shí)保護(hù)數(shù)據(jù)不丟失,因?yàn)閿?shù)據(jù)在多個(gè)硬盤上有備份。 RAID 6(雙
    的頭像 發(fā)表于 11-12 09:33 ?1974次閱讀

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-串口通訊編程示例之串口硬件原理

    個(gè)符號(hào)。常用的波特率為:115200、9600。 報(bào)文格式 串口的報(bào)文數(shù)據(jù)由:起始位(1bit)+數(shù)據(jù)位(5~8bit)+奇偶校驗(yàn)位(1bit)+停止位(1~1.5bit)組成。 起始位 在發(fā)送有效
    發(fā)表于 10-23 13:41

    飛凌嵌入式ElfBoard ELF 1板卡-串口通訊編程示例之串口硬件原理

    :115200、9600。報(bào)文格式串口的報(bào)文數(shù)據(jù)由:起始位(1bit)+數(shù)據(jù)位(5~8bit)+奇偶校驗(yàn)位(1bit)+停止位(1~1.5bit)組成。起始位在發(fā)送有效數(shù)據(jù)前,無需配置,會(huì)自動(dòng)產(chǎn)生1bit
    發(fā)表于 10-22 10:46

    UART串口通訊協(xié)議解析

    - 數(shù)據(jù)接受接口 GND - 保證兩設(shè)備共地,有統(tǒng)一的參考平面 通信協(xié)議 UART串口傳輸?shù)臄?shù)據(jù)被組織成數(shù)據(jù)包。每個(gè)數(shù)據(jù)包包含1個(gè)起始位,5至9個(gè)數(shù)據(jù)位,可選的奇偶校驗(yàn)位和1或1.5或2個(gè)停止位
    發(fā)表于 09-12 16:01

    雙模藍(lán)牙模塊UART串口和RS232在通訊領(lǐng)域的優(yōu)勢

    方式,主要用于計(jì)算機(jī)與其它設(shè)備之間的數(shù)據(jù)交換。RS232使用一對(duì)電線進(jìn)行數(shù)據(jù)傳輸,并使用奇偶校驗(yàn)和停止位來保證數(shù)據(jù)的完
    的頭像 發(fā)表于 09-09 17:07 ?809次閱讀

    如何通過I2C加載TPS2388x SRAM和奇偶校驗(yàn)代碼

    電子發(fā)燒友網(wǎng)站提供《如何通過I2C加載TPS2388x SRAM和奇偶校驗(yàn)代碼.pdf》資料免費(fèi)下載
    發(fā)表于 09-06 11:16 ?0次下載
    如何通過I2C加載TPS2388x SRAM和<b class='flag-5'>奇偶校驗(yàn)</b><b class='flag-5'>代碼</b>

    FCX3關(guān)于使用UART(引腳 E4 和 E5)進(jìn)行調(diào)試的問題求解

    ) 如何定義 UART 端口的配置(波特率、位數(shù)、奇偶校驗(yàn)、停止位);是否在固件中完成? 如果是,是哪個(gè)應(yīng)用程序接口/函數(shù)? 3) 如果配置是在固件中完成的,那么當(dāng)固件中沒有明確設(shè)置時(shí),CX3 是否會(huì)使用默認(rèn)配置? 默認(rèn)值是多少?
    發(fā)表于 07-05 06:40