Kod graya
-
- Użytkownik
- Posty: 42
- Rejestracja: 29 paź 2009, o 21:19
- Płeć: Kobieta
- Lokalizacja: Kraków
- Podziękował: 10 razy
- Pomógł: 3 razy
Kod graya
Nie wiem gdzie to napisać, ale tu powinniście wiedzieć. Potrzebuje się dowiedzieć jak się koduje kodem graya, mam taką tabelkę gdzie mam liczby od 1-15 potem w kodzie 8421 i to jest jasne a potem gray i tego już nie czaje weszłam sobie na wiki i jeszcze taką stronkę i dalej nie wiem, może mi to ktoś jak dla łośka wytłumaczyć?
- Mariusz M
- Użytkownik
- Posty: 6909
- Rejestracja: 25 wrz 2007, o 01:03
- Płeć: Mężczyzna
- Lokalizacja: 53°02'N 18°35'E
- Podziękował: 2 razy
- Pomógł: 1246 razy
Kod graya
Z tego co pamiętam to zapisujesz liczbę w naturalnym kodzie binarnym i xorujesz od lewej do
prawej sąsiadujące bity
(miałem to na urządzeniach techniki komputerowej jakieś osiem lat temu)
prawej sąsiadujące bity
(miałem to na urządzeniach techniki komputerowej jakieś osiem lat temu)
-
- Użytkownik
- Posty: 42
- Rejestracja: 29 paź 2009, o 21:19
- Płeć: Kobieta
- Lokalizacja: Kraków
- Podziękował: 10 razy
- Pomógł: 3 razy
Kod graya
hmm, ale to jest myśl tylko też nie wiem jak np
mam liczbę 5 w binarnym a potem chce w graya no to
5 0101 i teraz po kolei xoruje to jak? 01 to 1, potem 10 to 1, potem 01 to 1 a na końcu co ?
mam liczbę 5 w binarnym a potem chce w graya no to
5 0101 i teraz po kolei xoruje to jak? 01 to 1, potem 10 to 1, potem 01 to 1 a na końcu co ?
- Mariusz M
- Użytkownik
- Posty: 6909
- Rejestracja: 25 wrz 2007, o 01:03
- Płeć: Mężczyzna
- Lokalizacja: 53°02'N 18°35'E
- Podziękował: 2 razy
- Pomógł: 1246 razy
Kod graya
abc666, na urządzeniach techniki komputerowej
zapisywaliśmy liczbę w NKB z określoną liczbą bitów, pierwszy bit przepisywaliśmy
a na kolejnych wykonywaliśmy operację xor
zapisywaliśmy liczbę w NKB z określoną liczbą bitów, pierwszy bit przepisywaliśmy
a na kolejnych wykonywaliśmy operację xor
- Mariusz M
- Użytkownik
- Posty: 6909
- Rejestracja: 25 wrz 2007, o 01:03
- Płeć: Mężczyzna
- Lokalizacja: 53°02'N 18°35'E
- Podziękował: 2 razy
- Pomógł: 1246 razy
Kod graya
Nie ja piszę o kodzie Graya tylko ja na lekcji z urządzeń techniki komputerowej korzystałem z takiego wzorku
\(\displaystyle{ \begin{cases} g_{n}=b_{n} \\ g_{i}=b_{i} \oplus b_{i+1} \end{cases}}\)
Najstarszy bit przepisujemy a na reszczie bitów wykonujemy operację xor
w wyżej wymieniony sposób
(Numeracja bitów jest zgodna z wykładnikami potęg dwójki przy zamianie NKB na dziesiętny)
\(\displaystyle{ \begin{cases} g_{n}=b_{n} \\ g_{i}=b_{i} \oplus b_{i+1} \end{cases}}\)
Najstarszy bit przepisujemy a na reszczie bitów wykonujemy operację xor
w wyżej wymieniony sposób
(Numeracja bitów jest zgodna z wykładnikami potęg dwójki przy zamianie NKB na dziesiętny)
- Mariusz M
- Użytkownik
- Posty: 6909
- Rejestracja: 25 wrz 2007, o 01:03
- Płeć: Mężczyzna
- Lokalizacja: 53°02'N 18°35'E
- Podziękował: 2 razy
- Pomógł: 1246 razy
Kod graya
No z drugiej strony masz rację ale za to nie wymaga zapamiętywania następnej liczby
wykonywania przesunięcia bitowego itp i dlatego prościej i szybciej jest skorzystać z tego wzoru co podałem
wykonywania przesunięcia bitowego itp i dlatego prościej i szybciej jest skorzystać z tego wzoru co podałem
- Mariusz M
- Użytkownik
- Posty: 6909
- Rejestracja: 25 wrz 2007, o 01:03
- Płeć: Mężczyzna
- Lokalizacja: 53°02'N 18°35'E
- Podziękował: 2 razy
- Pomógł: 1246 razy
Kod graya
abc666, tym sposobem co ty podałeś też musisz
robić pętle po bitach no chyba że chcesz mieć wynik w postaci dziesiętnej
Oto fragment kodu w Pascalu i C/C++
który ty wziąłeś najprawdopodobniej z Wikipedii
która według mnie nie jest wiarygodnym źródłem
Tylko że teraz dostajesz wynik w postaci dziesiętnej
(Dla złożoności obliczeń jedna pętla w tą czy w tą zwykle nie robi różnicy
tym bardziej jeśli pętla nie jest zagnieżdżona)
W poprzedniej wiadomości nie miałem na myśli implementacji w jakimś
konkretnym języku programowania tylko że korzystając z tego wzoru który podałem
łatwiej przedstawić liczbę w kodzie Graya licząc na papierze
Na urządzeniach techniki komputerowej nie pisaliśmy z klasą programów tylko takie
rzeczy przeliczaliśmy na papierze
(rysowaliśmy tabelki na których ten wzór był od razu widoczny itd)
robić pętle po bitach no chyba że chcesz mieć wynik w postaci dziesiętnej
Oto fragment kodu w Pascalu i C/C++
który ty wziąłeś najprawdopodobniej z Wikipedii
która według mnie nie jest wiarygodnym źródłem
Kod: Zaznacz cały
a,b:word;
readln(a);
b:=a xor (a shr 1);
writeln(b);
Kod: Zaznacz cały
unsigned a,b;
scanf("%u",&a);
b=a ^(a >> 1);
printf("%u=
",b);
(Dla złożoności obliczeń jedna pętla w tą czy w tą zwykle nie robi różnicy
tym bardziej jeśli pętla nie jest zagnieżdżona)
W poprzedniej wiadomości nie miałem na myśli implementacji w jakimś
konkretnym języku programowania tylko że korzystając z tego wzoru który podałem
łatwiej przedstawić liczbę w kodzie Graya licząc na papierze
Na urządzeniach techniki komputerowej nie pisaliśmy z klasą programów tylko takie
rzeczy przeliczaliśmy na papierze
(rysowaliśmy tabelki na których ten wzór był od razu widoczny itd)
Ostatnio zmieniony 20 paź 2010, o 22:43 przez Mariusz M, łącznie zmieniany 1 raz.
Kod graya
Gdzie ja podałem jakiś kod?Oto fragment kodu w Pascalu i C/C++
który ty wziąłeś najprawdopodobniej z Wikipedii
Yyy? Jaki związek z obliczeniami ma sposób wyświetlania wyniku?chyba że chcesz mieć wynik w postaci dziesiętnej
Btw. nie wiem po co druga zmienna.
Kod: Zaznacz cały
a^=(a/2);