Co to znaczy, że kod jest samouzupełniający? Chciałbym, żeby ktoś mi to wytłumaczył dobrze.
PS: Nie wiedziałem w jakim dziale umieścić ten temat. Żaden dział nie pasuje.
Co to znaczy, że kod jest samouzupełniający? Chciałbym, żeby ktoś mi to wytłumaczył dobrze.
PS: Nie wiedziałem w jakim dziale umieścić ten temat. Żaden dział nie pasuje.
Nie ma czegoś takiego, pomyliłeś z trybem samouzupełniania dostępnym w większości współczesnych IDE.
Np zadeklarowałeś zmienne: int width,height;
Po czym niżej piszesz: wi
i naciskasz <Ctrl-Enter> IDE uzupełnia to do width
Chyba że chodzi mu o kod, który sam się modyfikuje.
Autorowi zapewnie zachodzi o kodowanie liczb znane np. z układów cyfrowych...
Binarny kod samouzupełniający (self-complementing code) to taki kod, w którym uzupełnienie binarne liczby do 1 jest równe uzupełnieniu dziesiętnym do 9.
Przykładem takiego kodu jest Excess-3 (czyli od binarnej liczby odejmujemy 3):
binarnie | dziesietnie | Excess 3
0011 | 3 | 0 (w Excess 3)
0100 | 4 | 1
0101 | 5 | 2
0110 | 6 | 3
0111 | 7 | 4
1000 | 8 | 5
1001 | 9 | 6
1010 | 10 | 7
1011 | 11 | 8
1100 | 12 | 9
I teraz na czym to wszystko polega:
uzupełnienie binarne do 1 liczby X (czyli negacja każdego bitu) daje jakąś nową liczbę X', dla przykładu 0011 po zanegowaniu daje 1100.
Uzupełnienie dziesiętne do 9 liczby X (czyli odjęcie 9 od każdej cyfry) daje jakąś nową liczbę X', dla przykładu 9 - 9 = 0, 9 - 8 = 1.
I teraz Excess-3 jest samouzupełniający, bo:
0011 = 0
po zanegowaniu
1100 = 9
czyli 9-0 = 9 (zgadza się)
0100 = 1
po zanegowaniu
1011 = 8
czyli 9-1=8
i tak dalej dla wszystkich liczb z tabelki...
Pod hasłem self-complementing code będzie to lepiej wyjaśnione; chciałem tylko naszkicować o co chodzi.