Ⅰ 51單片機中c語言奇偶校驗位如何設置
在51單片機中,只要將一個值傳送給累加器,這個數的奇偶校驗值就會影響P。一般而言,在串列通訊中為確保傳輸數的准確,用到校驗位的情況比較多。以下是程序代碼:
#include
main()
{
char dat;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SCON=0xd0;
while(1)
{
dat++;
ACC=dat;
TB8=P; //校驗位送第九數據位TB8
SBUF=ACC;
while(TI==0);
TI=0;
}
}
Ⅱ c語言編程 奇偶歸一猜想步數 急求,多謝!!
#include<stdio.h>
intmain(){
intn,cnt=0;
scanf("%d",&n);
while(n!=1){
if(n%2==0)n=n/2;
elsen=n*3+1;
cnt++;
}
printf("%d ",cnt);
return0;
}
Ⅲ c語言 判斷奇偶 求助!!!
在計算機里,數都是二進制的,從最右面開始,分別是2的0次冪、1次冪……n次冪。那麼從2的1次冪開始到2的n次冪相加和是2的n+1次冪-2(n>=1,因為我們是從2的0次冪開始的)。這個和一定是偶數。那麼這個數本身是奇還是偶,就取決於2的0次冪這位,那如果這位是1則這個數為奇,否則為偶。
10在機器里的表示為1010,那它和1(0001)」與「必定為0。即規律為:和1「與」結果是0則這個數為偶否則為奇。
Ⅳ 角谷猜想,C語言,輸出過程
代碼比較簡單,各語句意義見注釋。。。
#include<stdio.h>
intmain(intargc,char*argv[])
{
inti;/*定義要處理的變數*/
scanf("%d",&i);/*輸入變數值*/
while(i!=1)
{
if(i%2)/*奇數*/
{
printf("%d*3+1=%d ",i,i*3+1);/*按題目要求的格式列印出來*/
i=i*3+1;/*更新變數值*/
}
else/*偶數*/
{
printf("%d/2=%d ",i,i/2);/*按題目要求的格式列印出來*/
i=i/2;/*更新變數值*/
}
}
printf("END ");/*最後列印END*/
return0;
}
另外幾個測試結果圖片:
Ⅳ 求C語言編程。。 輸入一個8bit數,交換奇偶位數據。。
#include "stdio.h"
typedef unsigned char byte;
void PrintByte(byte b)
{
int i;
byte bit;
for (i=7; i>=0; i--)
{
bit = 1<<i;
bit = bit & b;
printf("%1d",bit>0?1:0);
}
}
int main()
{
char c = 'a';
byte f,s,fr,sr;
int i;
printf("c =");
PrintByte((byte)c);
printf("\n");
for (i = 0; i < 8; i+=2)
{
f=1<<i;
s=1<<(i+1);
fr=c&f;
sr=c&s;
c=(c&(~f))^(sr>>1);
c=(c&(~s))^(fr<<1);
printf("c =");
PrintByte((byte)c);
printf("\n");
}
return 0;
}
Ⅵ 猜數游戲c語言
#include <stdio.h>
#include <stdlib.h>
main()
{
int n,t,g;
char c;
while(1)
{
n = 1 + rand() % 100;
printf("請猜一個1~100的數字:");
scanf("%d",&g);
t=1;
while(g!=n)
{
if(t==10) break;
if(g<n) printf("猜小了哦\n");
else printf("猜大了哦\n");
scanf("%d",&g);
t++;
}
if(t==1) printf("太棒了,一次就猜對了!\n");
else if(t>2 && t<5) printf("猜了%d次,也不錯哦。\n",t);
else if(t>4 && t<8) printf("猜了%d次,還可以\n",t);
else if(t==8 || t==9) printf("猜了%d次才對,你亂猜的吧\n",t);
else if(t==10) printf("怎麼猜了10次還不對啊,算了,猜下一個吧。\n");
if((c=getchar())=='q') break;
}
}
Ⅶ C語言 編寫一個猜數字游戲,規則:使用隨機函數產生一個5位數,輸入猜測數據,判斷幾個正確,詳細如下:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
void main()
{
intA=0,B,i,j,k=0,a[5],g[5];
printf("請輸入你猜測的一個5位數數字\n");
scanf("%d",&k);
while(k<12345||k>99999)
{
printf("你輸入了一個非常規數據,請重新輸入\n");
scanf("%d",&k);
}
srand((unsignedint)time(NULL));
for(i=0;i<5;i++)
{
a[i]=rand()%9+1;
for(j=0;j<i;j++)
while(a[i]==a[j])
{
a[i]=rand()%9+1;
j=-1;
}
}
printf("隨機給出的數字為\n");
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("\n");
for(i=4;i>=0;i--)
{
g[i]=k%10;
k=(k-g[i])/10;
}
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
if(g[i]==a[j])
{
A++;
if(i==j)
B=i+1;
}
}
if(A==5)
printf("你猜測的全部正確\n");
else
{
printf("你猜對的個數:%d\n",A);
printf("你猜對數字的位置:第%d個\n",B);
}
}
Ⅷ c語言:隨機產生10個兩位正整數,分別統計其中偶數和奇數的個數,以及各類數據之和。
#include<stdio.h>
#include<time.h>
voidmain()
{
inti,a[10],d1=0,d2=0,s1=0,s2=0;
printf("隨機生成10個兩位正整數: ");
srand(time(NULL));
for(i=0;i<10;i++)
{
a[i]=rand()%(99-10+1)+10;
printf("%d",a[i]);
}
for(i=0;i<10;i++)
if(a[i]%2){d1++;s1+=a[i];}
else{d2++;s2+=a[i];}
printf(" 偶數%d個,和為%d 奇數%d個,和為%d",d2,s2,d1,s1);
}
Ⅸ 51單片機中C語言奇偶校驗位如何設置
MOV
A,
#待發數據
;數據進了A,即刻生成校驗位P
MOV
C,
P
MOV
TB8,
C
;校驗位送到TB8
MOV
SBUF,
A
;發送數據,以及P
上述寫法,是偶校驗。奇校驗,需要增加一條取反指令,如下:
MOV
C,
P
CPL
C
MOV
TB8,
C
;校驗位送到TB8