Kod NKB na Gray'a





esen1a - 01 Kwi 2009 14:46
Witam
Jak przeliczyć liczbę w kodzie NKB na Gray'a?
Szukałem trochę w internecie ale nie wiele znalazłem z przykładów.
Sam też próbowałem rozwiązać kilka przykładów ale nie znalazłem pożądanego efektu.





adamz74 - 01 Kwi 2009 15:41
Sprawdź następującą regułę:

jeśli bit n+1 jest równy 1 to na pozycji n kodu Gray'a wpisujesz negację bitu n z kodu NKB, jest jest równy 0 to wartość bitu przepisujesz (bez negacji).

Pozdr!



esen1a - 01 Kwi 2009 16:25
aha czyli tak:
w NKB 6 na 4 bitach to 0110, z tego wynika ze pierwsze dwa bity 01 gdzie 1 jest znaczącym bitem przepisuje, trzeci neguje a czwarty jako 0 przepisuje bez negacji wstawiając 1 i wychodzi 0101. Dla 12 w NKB 1100, pierwszy bit zostawiam bez zmian, drugi neguje, trzeci zamiast 0 bitu wstawiam 1 i czwarty pozostawiam bez zmian? ( i tu właśnie, chyba gdy bit jest 0 i za nim tez 0 to pierwszy neguje a drugi zostawiam bez zmian czyli 0 czy tak? ) wychodzi 1010.



Anonymous - 01 Kwi 2009 16:44
Tutaj masz realizację na bramkach to pomoże w analizie.
To przykład cztero-bitowy (można rozszerzać do dowolnej liczby bitów). Pochodzi z książki Piekońkosa i Turczyńskiego "Układy TTL w systemach cyfrowych"







adamz74 - 01 Kwi 2009 16:51
Wyszło ok, ale mam wrażenie, że źle określasz kolejność bitów... liczymy od najmłodszego do najstarszego, czyli od prawej do lewej.



esen1a - 01 Kwi 2009 22:39
Po rysunku widać że liczenie zaczyna się od prawej ( góry ) i trwa do tego znaczącego bitu. Prosiłbym o rozpisanie dwóch przykładów, żebym mógł zobaczyć czy popełniam błąd w swoim rozumowaniu.



Mariusz Ch. - 02 Kwi 2009 09:56
Błędem jest brak podstaw algebry Boole'a i lanie wody o szukaniu w internecie. Już czternasty wynik wyszukiwania podaje bardzo łatwy i praktyczny sposób zamiany NKB na kod Gray'a. Wystarczy znajomość funkcji Ex-OR i zamieniamy w kilka sekund liczby ośmiobitowe.

http://www.groluks.user.icpnet.pl/www/strony/gray.html

Przenoszę do kosza. Regulamin, punkt 16.