www.mamboteam.com
Project1.pl Advertisement
Start arrow Artykuły arrow Kryptografia arrow Kod Graya
piątek, 12 marzec 2010
 
 
Menu główne
Start
Artykuły
FAQ
Download
Kontakt
Ciekawe linki
Forum
Mapa serwisu
Logowanie





Zapomniałeś hasła?
Nie masz konta? Załóż sobie
Kod Graya Drukuj E-mail
Oceny: / 1
KiepskiBardzo dobry 
Napisał: Berl   
niedziela, 26 marzec 2006
Kod Graya, zwany również kodem refleksyjnym, jest dwójkowym kodem bezwagowym niepozycyjnym, który charakteryzuje się tym, że dwa kolejne słowa kodowe różnią się tylko stanem jednego bitu. Jest również kodem cyklicznym, bowiem ostatni i pierwszy wyraz tego kodu także spełniają tą zasadę.





Kod ten stosuje się w elektronice, głównie w przetwornikach analogowo-cyfrowych, szczególnie w systemach, gdzie występują po sobie kolejne wartości, czyli w czujnikach położenia oraz obrotu.
Algorytm ten da się zastosować także do kodowania danych, jednak jego skuteczności jest mierna.

Przykład :
  program Gray; {$APPTYPE CONSOLE} uses SysUtils;   function Szyfr(n : longint) : longint; begin Result := n xor (n div 2); end;   function Deszyfr(n : longword) : longword; begin if (n = 0) or (n = 1) then Result := n else Result := n xor Deszyfr(n div 2); end;   var Tekst : string; i : integer; Zaszyfrowany : string; begin WriteLn('Podaj tekst do zaszyfrowania : ' ); ReadLn(Tekst); for i := 1 to Length(Tekst) do begin Zaszyfrowany := Zaszyfrowany + chr(Szyfr(ord(Tekst[i]))); end;   WriteLn('Tekst zaszyfrowany :'); for i := 1 to Length(Tekst) do begin Write(Zaszyfrowany[i]); end; WriteLn; WriteLn('Deszyfrowanie...'); Tekst := ''; for i := 1 to Length(Zaszyfrowany) do begin Tekst := Tekst + chr(Deszyfr(ord(Zaszyfrowany[i]))); end;   WriteLn('Tekst odszyfrowany :'); for i := 1 to Length(Zaszyfrowany) do begin Write(Tekst[i]); end; ReadLn; end.
Komentarze

Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie.
Tylko zarejestrowani użytkownicy mogą pisać komentarze.

 
dalej »
LINKUJ PRO
Gościmy
Odwiedza nas 1 gość
Licznik odwiedzin
87243
 
Góra Góra