Metody zapisu liczb binarnych ze znakiem
Każdą liczbę w systemie dziesiętnym możemy zapisać jako liczbę:
- dodatnią np. 14, 345, 345
- oraz jako liczbę ujemną np. -4, -7, -765
Jak widać system decymalny umożliwia nam zapis liczb ujemnych w bardzo prosty sposób – wystarczy dodać znak „-” przed liczbą. Jak jednak przeprowadzić taką operację w systemie binarnym? Od razu mogę wspomnieć iż nie mamy możliwości wstawić po prostu „minusa” przed liczbą. W celu konwersji liczby w systemie dwójkowym z dodatniej na ujemną zmuszeni jesteśmy posłużyć się jedną z poniższych metod. A są to:
- metoda znak-moduł (ZM)
- metoda uzupełnień do 2 (U2)
Każda z metod które przedstawiłem cechuje się innym sposobem zamiany oraz posiada różne wady i zalety które szczegółowo omówię poniżej.
Metoda znak-moduł (ZM)
W przypadku tej metody, rolę znaku określającego liczbę binarną przejmuję cyfra będąca pierwszą w kolejności (nazywana również liczbą najstarszą) a pozostałe cyfry stanowią liczbę binarną.
Znak liczby binarnej zależny jest od wyrażenia 1-2*.
W przypadku gdy po znaku mnożenia wstawimy liczbę 1 to wynik naszego wyrażenia będzie wynosił -1 ( i cała liczba stanie się ujemna).
Jeśli natomiast po znaku mnożenia znajdzie się liczba 0 to otrzymamy wynik 1 ( i cała liczba stanie się dodatnia).
Innymi słowy: w tej metodzie jedyne co musimy zrobić by zmienić znak liczby binarnej to na jej początku dodać 0 lub 1.
Jeśli dodamy 1 cała liczba przyjmie wartość ujemną a jeśli dodamy 0 stanie się dodatnia.
Sposób zapisu liczby w metodzie znak-moduł
Zamiana liczby binarnej w systemie ZM na liczbę dziesiętną przebiega dokładnie tak jak zamiana standardowej liczby. Jedyne o czym musimy pamiętać przy zamianie to konieczność pomnożenia całej liczby binarnej przez podstawę metody znak-moduł czyli 1-2*.
Cała operacja przebiega następująco:
0111101(ZM) = (1-2*0) * (1*20 + 0*21 + 1*22 + 1*23 + 1*24 + 1*25) = 1 * 61 = 61
A teraz na początku podstawmy cyfrę 1:
1111101(ZM) = (1-2*1) * (1*20 + 0*21 + 1*22 + 1*23 + 1*24 + 1*25) = -1 * 61 = -61
- Jedną z wad metody (ZM) jest brak możliwości wykonywania prostych operacji arytmetycznych co ogranicza ich stosowanie.
Metoda uzupełnień do 2 (U2)
W tej metodzie cyfra określająca znak jest zespolona z liczbą binarną co w przeciwieństwie to metody (ZM) pozwala na wykonywanie obliczeń arytmetycznych.
Podstawą w tej regule jest wyrażenie: a*(-2b) + liczba binarna
a – liczba najstarsza
b – kolejność liczby najstarszej od lewej strony liczby binarnej
Zamiana liczby zapisanej metodą U2 na liczbę w systemie dziesiętnym
Zamiana ujemnej liczby dziesiętnej na liczbę binarną metodą U2
- Wyznaczamy wartość bezwzględną liczby która mamy zamienić
-5(10) = |-5(10)| = 5(10)
- Zamieniamy liczbę z systemu dziesiętnego na dwójkowy tradycyjnym sposobem:
5(10) = 101(2)
- Jeżeli po zamianie liczba składa się z nieparzystej liczby cyfr uzupełniamy ją zerami najbardziej po lewej stronie do krotności liczby 2. Jeżeli nasza liczba składała się z 3 cyfr uzupełniamy ją do 4, jeśli składała się z 7 cyfr uzupełniamy ją do 8.
0101(2)
- Kolejnym krokiem jest wykonanie negacji: wszystkie jedynki zamieniamy na zera, a zera na jedynki.
1010(2)
- Ostatnim krokiem jest dodanie binarnej jedynki do naszej liczby.
1010(2) + 0001(2) = 1011(2)
Po sprawdzeniu rozwiązania, udowodnimy prawidłowość przeprowadzenia obliczeń.
To już koniec tego artykułu. Mam nadzieję, że w odpowiednio prosty i klarowny sposób udało mi się wytłumaczyć Państwu obie metody dodawania znaków do liczb binarnych 🙂
Muszę przyznać że liczby binarne od teraz będę umiał perfekcyjnie dzięki:)
Proste i przyjemne zamienianie liczb, jeśli ktoś przeczyta artykuł i go nie zrozumie to chyba powinien zmienić profil szkoły.
Ktoś nareszcie tłumaczy ”po ludzku” o co chodzi z arytmetyką w komputerach. Dzięki.