home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Rockford Magazine
/
Rockford_Magazine_030_19xx_-_de_Disk_1_of_2_Side_B.d64
/
30zahlensysteme
< prev
Wrap
Text File
|
2023-02-26
|
13KB
|
325 lines
=======================================
ROCKFORD-MAGAZIN 09 TEXTFILE 10.03.1995
=======================================
WISSEN IST MACHT: ZAHLENSYSTEME
=======================================
Hallo Fans!
Dieser Text ist in 80 Zeichen!! Ladet
also am C64 den 80Z Hack und den
SEQ-TXT-Anzeiger o.a. Viel Spass!
=======================================
Zahlensysteme
Gerade beim Programmieren ist es manchmal wichtig eine Uebersicht ueber
die verschiedenen Zahlensysteme zu kennen. Im taeglichen Gebrauch kennen
die meisten Menschen eigentlich nur das Dezimalsystem, fuer den Gebrauch
im Computer ist dies aber nicht gut geeignet, weil es leicht unueberschau-
bar wuerde. Deshalb moechte ich einen kleinen Ueberblick ueber verschiedene
Zahlensysteme geben, damit es auch mit diesen keine Probleme mehr gibt.
Vielleicht gebe ich zuerst einmal, anhand einer Tabelle, einen Ueberblick
auf die Zahlen 1-16 in unterschiedlichen Systemen:
Dezimal Dual/Binaer Quartal Oktal Hexadezimal
0 0000 0 0 0
1 0001 01 1 1
2 0010 02 2 2
3 0011 03 3 3
4 0100 10 4 4
5 0101 11 5 5
6 0110 12 6 6
7 0111 13 7 7
8 1000 20 10 8
9 1001 21 11 9
10 1010 22 12 A
11 1011 23 13 B
12 1100 30 14 C
13 1101 31 15 D
14 1110 32 16 E
15 1111 33 17 F
16 10000 100 20 10
1.Das Dezimalsystem
-------------------
Das Dezimalsystem sollte eigentlich jedem von uns bekannt sein, da wir
staendig damit zu tun haben. Sei es nun in der Schule oder beim taeglichen
Einkauf. Das Dezimal-System ist ein Ziffernsystem und beruht auf die
Grundzahl 10. Dies kommt vom Zaehlen mit dem zehn Fingern. Je zehn Ein-
heiten werden zu einer hoeheren Einheit zusammengefasst (Einer, Zehner,
Hunderter...). Noch etwas zur Geschichte des Dezimalsystems: Es gelangte
von den Indern ueber die Araber nach Europa. Dies passierte im 12 Jahr-
hundert.
2.Das Dualsystem (Rechnen im Dualen-System)
-------------------------------------------
Das Dualsystem ist ein dyadisches System (Zweiersystem) mit der Basis 2.
Die Einheiten des Dualsystems sind die Potenzen von 2. Jede natuerliche
Zahl laesst sich eindeutig als Dualzahl wiedergeben. Das Dualsystem wird
haeufig im Zusammenhang mit Computern Binaersystem genannt. Durch die
Verwendung von 0 oder 1, ist es gut geeignet elektr. Schaltungen darzu-
stellen und hat deshalb eine hohe Bedeutung (0=geschlossen, 1=offen).
Die allerersten Computer wurden so programmiert. Da dies aber heute
viel zu kompliziert waere greift man auf Programmiersprachen zurueck.
Betrachtet man den Computer ganz sachlich, so versteht er 0 oder 1
und sonst nichts.
Die Dezimalzahl 10 setzt sich im Dualsystem beispielsweise so zusammen:
(da Potenzen in ASCII schlecht darzustellen sind wird das ^ nach der
Potenzbasis verwendet)
10 = 1*2^3+0*2^2+1*2^1+0*2^0 = 1010
{$7d} {$7d} {$7d} {$7d}
{$7d}..=8 {$7d}..=0 {$7d}..=2 {$7d}..=0 gesamt = 10
Das ist also mit ein wenig Uebung ganz einfach.
Das Rechnen mit dualen Zahlen ist auch nicht viel anders, als im Dezimal-
system.
a) Addition/Subtraktion von dualen Zahlen
-----------------------------------------
0+0=0 0+1=1 -> 1+0=1 1+1=0 1+1+1=0
0-0=0 0-1=1 1-0=1 1-1=0 0-1-1=0 mit Uebertrag
Am Besten arbeitet man sich an den zwei Beispielen durch:
101 1011,101 = 91,625 dez
+ 10 0101,0101 = +37,3125 dez
-------------- ------------
100000000,1111 = 128,9375 dez
.............
{$7d} .
11010010,1000 .
- 1011010,1011 hier z.B. ein Uebertrag
--------------
1110111,1101
Es ist zu beachten, das auch hier mit Uebertraegen gerechnet wird (ganz klar
oder?).
b) Multiplikation/Division von dualen Zahlen
--------------------------------------------
0*0=0 0*1=0 1*0=0 1*1=1
Auch hier gebe ich mal zwei Beispiele:
11011 * 10010 27 * 18 dez
------------- -----------
11011 27
00000 216
00000 -----------
11011 486
00000
-------------
111100110 = 486
1000100111 : 11101 = 10011 = 19
-11101
------
1010 Hier noch das Gleiche in Dezimal:
-0000 551 : 29 = 19
----- -29
10101 ---
-00000 261
------ -261
101011 ----
-11101 0
------
0
2.1 Vergleich zwischen Dual- und Dezimalsystem
----------------------------------------------
Warum das Dualsystem wesentlich leichter zu handhaben ist und warum das
Rechnen mit Dualzahlen viel einfacher ist, zeigt der Vergleich mit den
Rechentabellen der einzelnen Systeme. Mit den Tabellen duerften auch die
Beispiele aus den vergangenen Kapiteln besser nachvollzogen werden koennen.
Man sieht deutlich, wie kleiner die Rechentabellen im Dualsystem sind.
a) Rechentabellen fuer das Dezimalsystem (Addition/Multiplikation)
-----------------------------------------------------------------
+ 0 1 2 3 4 5 6 7 8 9 * 0 1 2 3 4 5 6 7 8 9
0 0 1 2 3 4 5 6 7 8 9 0 0 0 0 0 0 0 0 0 0 0
1 1 2 3 4 5 6 7 8 9 10 1 0 1 2 3 4 5 6 7 8 9
2 2 3 4 5 6 7 8 9 10 11 2 0 2 4 6 8 10 12 14 16 18
3 3 4 5 6 7 8 9 10 11 12 3 0 3 6 9 12 15 18 21 24 27
4 4 5 6 7 8 9 10 11 12 13 4 0 4 8 12 16 20 24 28 32 36
5 5 6 7 8 9 10 11 12 13 14 5 0 5 10 15 20 25 30 35 40 45
6 6 7 8 9 10 11 12 13 14 15 6 0 6 12 18 24 30 36 42 48 54
7 7 8 9 10 11 12 13 14 15 16 7 0 7 14 21 28 35 42 49 56 63
8 8 9 10 11 12 13 14 15 16 17 8 0 8 16 24 32 40 48 56 64 72
9 9 10 11 12 13 14 15 16 17 18 9 0 9 18 27 36 45 54 63 72 81
b) Rechentabellen fuer das Dualsystem (Addition/Multiplikation)
--------------------------------------------------------------
+ 0 1 * 0 1
0 0 1 0 0 0
1 1 10 1 0 1
{$7d}...dadurch kommt auch der
Uebertrag zustande
c) einfachste Umrechnug Dual/Dezimal
------------------------------------
am einfachsten rechnet man eine Dualzahl in dezimal um, wenn man die
Wertigkeit drueber schreibt. Ein Beispiel an der Dualzahl 100101.
Dezimal: 32 16 8 4 2 1
-----------------------------------
Dualzahl: 1 0 0 1 0 1
Das Ergebnis ist dann 32 + 4 + 1 = 37
3. Das Quartalsystem
--------------------
Das Quartalsystem ist ein Zahlensystem mit der Basis 4 und soll hier nur
amn Rande betrachtet werden.
Das Quartalsystem setzt sich so zusammen:
0 1 2 3
1
2
3
10 ------------------ dezimal = 4
11
12
13
20 ------------------ dezimal = 8
21
22
23
30 ------------------ dezimal = 12
31
32
33
100 ----------------- dezimal = 16
Man sieht gut, wie sich das Quartalsystem (Quartal kommt von 4) aus Vierer-
bloecken zusammensetzt, dadurch ist auch das Umrechnen von Zahlen aus dem
Quartalsystem ins Dezimalsystem und umgekehrt nicht schwer.
3.1 Umrechnungen im Quartalsystem
---------------------------------
Wir nehmen an, dass wir die Zahl 485,875 in eine Quartalzahl umwandeln wollen
und gehen so vor:
485,875 dez. = ? quart.
.
485 : 4 = 121 Rest 1 /{$7d}. 0,875 * 4 = 3,5 (3)
121 : 4 = 30 Rest 1 {$7d} 0,5 * 4 = 2,0 (2)
30 : 4 = 7 Rest 2 {$7d}
7 : 4 = 1 Rest 3 {$7d}
1 : 4 = 0 Rest 1 {$7d}
Loesung: 485,875 = 13211,32
Man berechnet die Stellen vor dem Komma seperat und die dabei enstandenen
Reste ergeben von unten nach oben die Loesung. Die Stellen nach dem Komma
werden ebenfalls getrennt berechnet und von oben nach unten werden die
ganzen Zahlen der jeweiligen Loesung hinter die erste Quartaltalzahl ge-
schrieben.
Umgekehrt, also wenn ich eine Quartalzahl habe und die Dezimalzahl wissen
will, geht man so vor:
13201,3102 quart. = ? dez.
= 4^4+3*4^3+2*4^2+1+3*4^-1+4^-2+2*4^-4
= 256+192+32+1+0,75+0,0625+0,0078125
= 481,8263125 dez:
Das sieht zwar auf den ersten Blick etwas schwerer aus ist es aber nicht.
Jede Stelle der Quartalzahl multipliziert man mit der Zahl 4 und der
entsprechenden Stellenpotenz. Bei der dritten Stelle waere dies 4^2.
Bei der ganzen Zahl sieht das so aus:
1 3 2 0 1 , 3 1 0 2
{$7d} {$7d} {$7d} {$7d} {$7d} {$7d} {$7d} {$7d} {$7d}
4^4------^ 4^3--^ 4^2-^ 4^1-^ 4^0-^ 4^-1^ 4^-2^ 4^-3^ 4^-4^
4. Das Oktalsystem
------------------
Das Oktalsystem ist dem Quartalsystem aehnlich und seine Basis ist die 8.
Das Oktalsystem ist in Achtergruppen unterteilt un zwar so:
0 1 2 3 4 5 6 7
1
2
3
4
5
6
7
10 Dezimal = 8
11 9
12 10
13 11
14 12
15 13
16 14
17 15
20 16
Auch hier wieder entsprechende Gruppen, genau wie im Quartalsystem.
4.1 Umrechnungen im Oktalsystem
-------------------------------
Die Umrechnung ist dem Quartalsystem aehnlich, man muss nur die Basis 8 be-
achten.
z.B. 345,67okt = 3*8^2+4*8^1+5*8^0+6*8^-1+7*8^-2
= 229,859375 dez.
Dezimal -> Oktal
668 dez. = ? okt.
.
668 : 8 = 83 Rest 4 /{$7d}.
83 : 8 = 10 Rest 3 {$7d}
10 : 8 = 1 Rest 2 {$7d}
1 : 8 = 0 Rest 1 {$7d} = 1234okt
5. Das Hexadezimalsystem
------------------------
Das Hexadezimalsystem beruht auf die Basis 16. Fuer die Ziffern 10 bis 15
schreibt man A bis F. Man zaehlt also so:
1 2 3 4 5 6 7 8 9 A B C D E F
10 11 12 13 14 15
Angenommen wir haben die Zahl 687 vorliegen. Wir koennen dazu auch dezimal
sagen: 7 Einer + 8 Zehner + 6 Hunderter. Die Folge im Hexadezimalensystem
ist nicht 1, 10, 100, 1000 sondern 1, 16, 256, 4096.
Moechte ich nun den Wert einer Hexadezimalenzahl in dezimal wissen, dann
kann ich mir das so ausrechnen:
Beispiel: FFFF = 15*4096 + 15*256 + 15*16 + 15*1 = 65535
da F die Wertigkeit 15 besitzt, muss ich einfach nur die
entsprechenden Folge mit der Wertigkeit multiplizieren.
Das Hexadezimalsystem ist gerade wichtig, wenn man in Assembler programmiert
und das sollte man auch eigentlich beherrschen, wenn man Assembler verstehen
will.
6. Schlusswort
-------------
Vielleicht konnte dem einen oder anderen mit diesem Artikel geholfen werden.
Ich gebe natuerlich keine Gewaehr dafuer, dass alles hundertprozentig richtig
ist, da ich die meisten Beispiele nicht noch einmal alle extra nachgerechnet
habe. Doch im Prinzip duerften keine groesseren Fehler enthalten sein, sonst
bitte ich um eine Mitteilung, damit ich in Zukunft auch noch etwas schlauer
werde. Den Artikel darf jeder zu seinen privaten Zwecken gebrauchen. Die
kommerzielle Weiterverarbeitung des Artikels ist untersagt, da ich ja auch
nichts dafuer bekomme.
Viel Spass. (J.W.)
AMIcon
=======================================
END OF TEXTFILE 100% FREEWARE
=======================================