działania w systemie o podstawie 2.

0

Siema. Chciałbym się Was coś zapytać. Może nie jest to problem typowo z programowania ale jest z nim związany. Chodzi o system binarny. Muszę wykonać jakieś działania, różne. Dodawanie, odejmowanie, mnożenie, dzielenie. Przykładowo:

1011011 + 100111
1001000 - 101101
1000011 * 100111
11111101 : 1101

Na uczelni pokazywali nam, że robi się to w słupku i tam spisuje kolejne liczby itd, lecz mam następujące pytanie. Czy mogę zrobić to inną metodą i np: 1011011 zamienić z binarnego na decymalny, następnie 100111 również zamienić z binarnego na decymalny, dodać te liczby w systemie decymalnym i tą liczbę zamienić na system binarny. Czy to tak zadziała, czy muszę opanować tą metodę w słupku? Wiecie, rozumiem że to nie jest nic trudnego ale jednak trochę czasochłonne, tak więc pytam też z ciekawości.

Dzięki.

0

Z perspektywy programistycznej ważniejsze jest, żebyś w ogóle wiedział:

  • na czym układ binarny polega i że dane w komputerze są w postaci binarnej (i jakie są tego konsekwencje).
  • znał układ szesnastkowy i wiedział, jak się to ma do układu dwójkowego (czy dziesiętnego).
  • znał podstawowe operacje - and, or, xor, przesunięcia bitowe i wiedział do czego można je wykorzystać w praktyce.
  • znał choćby ogólniki, jak liczby są trzymane w komputerze, słyszał chociaż o takich pojęciach jak big endian, little endian, czy to, w jaki sposób są liczby zmiennoprzecinkowe przechowywane (disclaimer: sam tego za bardzo nie ogarniam z liczbami zmienno przecinkowymi, co nie zmienia tego, że są to podstawy informatyki).

Czy to tak zadziała, czy muszę opanować tą metodę w słupku?

Liczenie w słupku nic ci nie da jako tako, chociaż jeśli to ma ci pomóc w zrozumieniu układu dwójkowego, to czemu nie? Ważne, żeby ogólnie rozumieć, umieć sobie wyobrazić te liczby, i wykonać podstawowe operacje na nich (czyli np. co się dzieje jak zrobisz a & b czy a << 3)

0

Dzięki, ale pomińmy teraz kawałek kodu tylko mówmy typowo o tej metodzie o którą pytam, czy dodawanie jakie opisałem działa i jest poprawne?

0

Jak dziala w dziesietnym, to zadziala I w binarnym. System dziesietny nie jest jakiś wyrozniony:)

0

Oczywiście zamiana systemu i wykonanie działania w innym zadziała.
Jakkolwiek operacje w binarnym "na słupkach" sa jednak łatwiejsze niż w dziesiętnym.
Najbardziej pracochłonna to jest zamiana konwersja reprezentacji liczb między systemami dec i bin.

0

Dziękuję, wyjaśnione.

0

Możesz sobie zaimplementować tak dla sztuki dodawanie za pomocą uniwersalnych bramek nand lub nor dodawanie dla 1 bita i potem rekurencyjnie powiększyć do x bitów.

Takie w słupku dodawanie działa na znacznie wyższym poziomie abstrakcji, niż takim low level na bitach.
Ale w wyniku otrzymasz to samo.

Schemat działania takiego jak w słupku można wykorzystać potem do implementacji big numbers gdzie rejestr to za mało na przechowanie jakiejś wielkiej liczby.
I w miarę łatwe do zaimplementowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1