| Kod Graya |
|
|
| 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.
Aby dodać komentarz zaloguj się. Jeśli nie masz konta, załóż je sobie. |
||
| dalej » |
|---|




