Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Zamiana Liczb
  • Język programu: Basic
  • Platforma: Atari XE/XL
  • Kod zamieszczono w Bajtek 4/1988
  • Autor listingu: Dorota Ciesielska
  • Listing nadesłał: Amarok

Stan listingu:

4
Listing gotowy - uruchamia się na emulatorze lub realnej maszynie zgodny z listingiem zamieszczonym w periodyku

Z przykrością musze stwierdzić, że nie znalazłam dotąd w "Bajtku" artykułu (programu) napisanego przez DZIEWCZYNĘ. Chciałabym zmienić ten stan rzeczy proponując program, którego zadaniem jest zamiana liczb z systemu dziesiętnego na liczby przedstawione w systemie dwójkowym i szesnastkowym (wbudowany BASIC nie posiada takiej funkcji).

Algorytm działania programu jest uniwersalny do konwersji liczby w systemie dziesiętnym na liczbie w innym systemie, a polega on na dzieleniu zadanej wartości przez podstawę określonego systemu. Otrzymane z dzielenia reszty będą kolejnymi cyframi reprezentacji zadanej wartości w tym systemie.
Brzmi to trochę dziwnie i niezrozumiale. Przedstawmy przykład, który pozwoli lepiej nam zrozumieć ten sposób konwersji.
Chcemy przedstawić liczbę 11 w systemie dwójkowym. Dzielimy zatem 11 przez 2 (podstawę systemu dwójkowego).
11:2=5 r.1
5:2=2 r.1
2:2=1 r.0
1:2=0 r.1
Otrzymane reszty (r.) piszemy od pozycji najmniej znaczącej (od końca) i w ten sposób otrzymujemy liczbę 11 przedstawioną w systemie dwójkowym.
11- -> 1011
Analogicznie rzecz się przedstawia przy zamianie liczby systemu dziesiętnego na liczbę w systemie szesnastkowym z tą tylko różnicą, że podstawa dzielenia jest liczbą 16, a dziesiętne wartości równe 10,11,12,13,14,15 są przedstawione literami A,B,C,D,E,F.
Dla lepszego zrozumienia przykład: Zamieniamy liczbę 8360 (w systemie dziesiętnym) na liczbę przedstawioną w systemie szesnatkowym.
8360:16 = 522 r.8
522:16 = 32 r.10 — A
32:16 = 2 r.0
2:16 = 0 r.2
Przepisanie wartości reszt od pozycji najmniej znaczącej da nam liczbę 8360 przedstawioną w systemie szesnastkowym (należy pamiętać, że wartości 10 odpowiada litera A). Ostatecznie otrzymujemy:
8360 - -> 20A8


Jak zaladować (najprostsza metoda)

ALTIRRA: 

  • Włączyć SYSTEM->INTERNAL BASIC (Basic Without OPTION Key)
  • Cold Reset (Powinien wejść do Basica)
  • LOAD "D:RESET.BAS"
  • RUN