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ą.

przykład

 

 

 

 

 

 

 

 

 

 

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  🙂

 

 

 

 

 

 

 

 

 

3 komentarze
  1. Adam
  2. Witek
  3. Piotr

Leave a Reply

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *