StefanGradiska
Početnik
- Poruka
- 46
Pozdrav ljudi,može li mi ko objasniti kako se konvertuje dekadni broj u Grejov kod?
Donji video prikazuje kako da instalirate aplikaciju na početni ekran svog uređaja.
Napomena: This feature may not be available in some browsers.
Pozdrav ljudi,može li mi ko objasniti kako se konvertuje dekadni broj u Grejov kod?
/////////////////////////////////////////////////////////////
//// Coverting a decimal number to Gray code /////
///////////////////////////////////////////////////////////
# include<stdio.h>
# include<conio.h>
# include<stdlib.h>
static int a[8],b[8],k=1,i;
void main()
{ int n1;
clrscr();
printf("Enter any Numbers :");
scanf("%d",&n1);
while(n1!=0) /* converting number to its binary equivalent */
{ a[i]=n1 % 2;
n1/=2;
i++;
}
/* printing binary equivalent */
printf("\nThe binary code of the given number is :");
for(i=7;i>=0;i--)
printf("%d",a[i]);
/* gray code conversion */
b[0]=a[7];
for(i=7;i>=0;i--)
{ if(a[i]==0 && a[i-1]==0)
b[k]=0;
if(a[i]==1 && a[i-1]==1)
b[k]=0;
if(a[i]==0 && a[i-1]==1)
b[k]=1;
if(a[i]==1 && a[i-1]==0)
b[k]=1;
k++;
}
/* printing the gray code */
printf("\nThe gray code of the given number is :");
for(i=0;i<8;i++)
printf("%d",b[i]);
}
program koder;
var
t,grej,bin:string;
zb,l,g,br,i,j,n,k,x,x1:longint;
a:longint;
begin
writeln ('Prirodan broj koji treba konvertovati?');
readln (n);
writeln ('Koliko bitova?');
readln (k);
repeat
if n>=2 then br:=n mod 2 {konverzija dekadnog u binarni}
else br:=n;
n:=n div 2;
str(br,t);
bin:=t+bin; {ide t+bin,jer se rezultat zapisuje od dole,naprema gore}
until n=0;
l:=length(bin);
for i:=1 to l do
begin
if i>1 then
begin
val(bin[i],x,a); {konverzija stringa u broj}
val(bin[i-1],x1,a);
zb:=x+x1;
if zb=1 then t:='1' {granicni slucajevi}
else
if zb=0 then t:='0'
else
if zb=2 then t:='0';
grej:=grej+t;
end;
if i=1 then grej:=grej+bin[i];
end;
l:=length(grej); {dodavanje nula,odnosno bitova ako nema dovoljno}
if l<k then
begin
repeat
grej:='0'+grej;
l:=length(grej);
until l=k;
end;
writeln (grej);
readln;
end.
Znam naravno da pretvorim dekadni u binarni,ali ne znam iz binarnog u Grejov kod.
Ako možeš samo to da objasniš.
E ipak ne treba.
Dakle 1+1=0!
0+0=0!
1+0=1!