1. c語言程序設計答案 編程實現,從鍵盤輸入一個字元,則輸出其後的字元,如輸入『A』則輸出『B』
程序源碼如下:
#define _CRT_SECURE_NO_WARNINGS//VS環境下需要,VC不需要
#include<stdio.h>
void main()
{
char a;//定義一個字元
printf("請輸入一個字元:");//文字提示
scanf("%c", &a);//輸入一個字元
printf("其後續字元為:");//文字提示
printf("%c
", a + 1);//輸出其之後的字元
}
程序運行結果如下:
(1)奇偶校驗編程擴展閱讀:
在計算機中,所有的數據在存儲和運算時都要使用二進制數表示(因為計算機用高電平和低電平分別表示1和0),例如,像a、b、c、d這樣的52個字母(包括大寫)以及0、1等數字還有一些常用的符號(例如*、#、@等)在計算機中存儲時也要使用二進制數來表示。
而具體用哪些二進制數字表示哪個符號,當然每個人都可以約定自己的一套(這就叫編碼),而大家如果要想互相通信而不造成混亂,那麼大家就必須使用相同的編碼規則,於是美國有關的標准化組織就出台了ASCII編碼,統一規定了上述常用符號用哪些二進制數來表示。
ASCII 碼使用指定的7 位或8 位二進制數組合來表示128 或256 種可能的字元。標准ASCII 碼也叫基礎ASCII碼,使用7 位二進制數(剩下的1位二進制為0)來表示所有的大寫和小寫字母,數字0 到9、標點符號,以及在美式英語中使用的特殊控制字元。其中:
1、0~31及127(共33個)是控制字元或通信專用字元(其餘為可顯示字元),如控制符:LF(換行)、CR(回車)、FF(換頁)、DEL(刪除)、BS(退格)、BEL(響鈴)等;
通信專用字元:SOH(文頭)、EOT(文尾)、ACK(確認)等;ASCII值為8、9、10 和13 分別轉換為退格、製表、換行和回車字元。它們並沒有特定的圖形顯示,但會依不同的應用程序,而對文本顯示有不同的影響 。
2、32~126(共95個)是字元(32是空格),其中48~57為0到9十個阿拉伯數字。
3、65~90為26個大寫英文字母,97~122號為26個小寫英文字母,其餘為一些標點符號、運算符號等。
同時還要注意,在標准ASCII中,其最高位(b7)用作奇偶校驗位。所謂奇偶校驗,是指在代碼傳送過程中用來檢驗是否出現錯誤的一種方法,一般分奇校驗和偶校驗兩種。
奇校驗規定:正確的代碼一個位元組中1的個數必須是奇數,若非奇數,則在最高位b7添1;
偶校驗規定:正確的代碼一個位元組中1的個數必須是偶數,若非偶數,則在最高位b7添1。
後128個稱為擴展ASCII碼。許多基於x86的系統都支持使用擴展(或「高」)ASCII。擴展ASCII 碼允許將每個字元的第8 位用於確定附加的128 個特殊符號字元、外來語字母和圖形符號
常見ASCII碼的大小規則:0~9<A~Z<a~z。
1)數字比字母要小。如 「7」<「F」;
2)數字0比數字9要小,並按0到9順序遞增。如 「3」<「8」 ;
3)字母A比字母Z要小,並按A到Z順序遞增。如「A」<「Z」 ;
4)同個字母的大寫字母比小寫字母要小32。如「A」<「a」 。
幾個常見字母的ASCII碼大小: 「A」為65;「a」為97;「0」為 48 。
參考資料來源:網路-ASCII
2. 奇偶校驗位的編寫在vhdl中到底應該怎麼編程啊,怎樣校驗錯誤呢真的整不明白
奇偶校驗的概念你明白吧,偶校驗位就是前面的每一位的異或
奇校驗位就是前面的每一位的同或
3. STC單片機 串口通信 奇偶校驗
1、51單片機SCON=0xDA,工作在方式3.(方式2也可以)
串口 1 模式 3:
波特率是可變的,其它和模式2 相同
11 位數據通過TxD/P3.1 發送,通過RxD/P3.0 接收。一幀數據包含一個起始位(0),8 個數據位(低位在
先),一個可編程的第9 位,和一個停止位(1)。發送時,第9 位數據位來自特殊功能寄存器SCON 的
TB8 位.接收時,第9 位進入特殊功能寄存器SCON 的RB8 位。
SMOD
串口1波特率在模式3 = ( 2 / 32 ) x BRT獨立波特率發生器的溢出率
當SMOD = 0時,串口1波特率 = BRT 獨立波特率發生器的溢出率 / 32,
當SMOD = 1時,串口1波特率 = BRT 獨立波特率發生器的溢出率 / 16,
BRT獨立波特率發生器的溢出率 = Fosc/12/( 256 - BRT ),當BRTx12 = 0時,
BRT獨立波特率發生器的溢出率 = Fosc / ( 256 - BRT ),當BRTx12 = 1時
TB8:發送時校驗位,可以奇校驗或偶校驗(直接置0或1),然後再發送。
RB8:接收時校驗位,判斷接數據是否正確。
2、程序
/*****************************************
*串口1中斷
*****************************************/
void RXD_Int_Service() interrupt 4
{
uint8 ch;
if(RI)
{
RI=0;
Usart1.RxdDly=6; //超過0.3S清空計數
Usart1.RxdBuf[Usart1.RxdCnt]=ch;
Usart1.RxdCnt++;
if(Usart1.RxdCnt>=10)
{
Usart1.RxdTrue=1; //接收正確。
Usart1.RxdNum=Usart1.RxdCnt;
Usart1.RxdCnt=0;
}
}
if(TI)//防止發送中斷
{
TI=0;
}
}
void Timer0_InSevice() interrupt 1
{
TH0=0xdc; //定義50ms 正常值0xfe 0x0c ,修正值:0xfe 0x16;
TL0=0x00; //11.0592MHz晶振
if(Usart1.RxdDly)
{
Usart1.RxdDly--; //0.3S沒有接收到數據,清0計數。
if(Usart1.RxdDly==0)
{
Usart1.RxdCnt =0; //記數清0.
}
}
}
4. 單片機編程 運用「與」運算,判斷某8位二進制數是奇數還是偶數個1
51單片機可以不用與運算,只接判斷,用P(奇偶校驗位),如果非得用與運算只能這樣:
MOV A,#0FFH
ANL A,#DATA;某數)
JNB P,REL
5. 三菱3u的奇偶校驗是怎麼回事怎麼進行奇偶校驗
三菱plc通信的通訊設置分編程口和通訊模塊,通訊模塊的波特率、奇偶校驗等可在程序中設置,編程口的波特率、奇偶校驗等依產品系列的不同而不同。常用的FX系列的編程口默認值是:波特率=9600,數據位=7,停止位=1,偶校驗。
6. Linux c串口編程中什麼是奇偶效驗
奇偶校驗是一種校驗代碼傳輸正確性的方法。根據被傳輸的一組二進制代碼的數位中「1」的個數是奇數或偶數來進行校驗。採用奇數的稱為奇校驗,反之,稱為偶校驗。採用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中「1」的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗「1」的個數是否為奇數,從而確定傳輸代碼的正確性。
7. C語言編程 字元的奇校驗碼
c語言的字元類型是以整數的形式存儲在內存中的,這個整數就是這個字元的ascii碼,所以只需要將字元以整數的形式輸出即可。
代碼如下:
#include
int main()
{
char c;
c = getchar();
printf("%d\n", c);
return 0;
}
8. 什麼是奇偶校驗
奇偶校驗(Parity Check)是一種校驗代碼傳輸正確性的方法。根據被傳輸的一組二進制代碼的數位中"1"的個數是奇數或偶數來進行校驗。採用奇數的稱為奇校驗,反之,稱為偶校驗。採用何種校驗是事先規定好的。通常專門設置一個奇偶校驗位,用它使這組代碼中"1"的個數為奇數或偶數。若用奇校驗,則當接收端收到這組代碼時,校驗"1"的個數是否為奇數,從而確定傳輸代碼的正確性。
奇偶校驗需要一位校驗位,即使用串口通信的方式2或方式3(8位數據位+1位校驗位)。奇校驗(odd parity):讓傳輸的數據(包含校驗位)中1的個數為奇數。即:如果傳輸位元組中1的個數是偶數,則校驗位為「1」,奇數相反。以發送字元:10101010為例
數據和校驗位發送給接受方後,接收方再次對數據中1的個數進行計算,如果為奇數則校驗通過,表示此次傳輸過程未發生錯誤。如果不是奇數,則表示有錯誤發生,此時接收方可以向發送方發送請求,要求重新發送一遍數據。
優缺點:
奇偶校驗的檢錯率只有50%,因為只有奇數個數據位發生變化能檢測到,如果偶數個數據位發生變化則無能為力了╮(╯﹏╰)╭
奇偶校驗每傳輸一個位元組都需要加一位校驗位,對傳輸效率影響很大。
奇偶校驗只能發現錯誤,但不能糾正錯誤,也就是說它只能告訴你出錯了,但不能告訴你怎麼出錯了,一旦發現錯誤,只好重發。
雖然奇偶校驗有很多缺點,但因為其使用起來十分簡單,故目前仍被廣泛使用。
應用:
如何用編程確定一個位元組中「1」個數的奇偶性?我們可以利用二進制數相加的特點:
0+0=0、1+0=1、1+1=0
可以看出,如果我們將一個位元組的所有位相加
有奇數個「1」的位元組的和為1
有偶數個「1」的位元組的和為0
由此即可通過編程完成判斷。實際應用中,實現方法很多,但這是相對簡單的一種,這里不再贅述。