Zahlensysteme
Das tut soll zeigen, wie man in pc zahlen rechnet.
Zählen Wie ein PC
Wenn ein pc arbeitet, stellt amn sich da lauter einsen und nulen vor.
1010100010111101010110100001011111101001011001010100010100110101110
1010101001010001011110101010110100111101011101001010101001010110101
aber (wie nicht ander zu erwarten) steckt da system dahinter.
nur welches?
Unser Zahlensystem (dezimales system) hat 10 Ziffern.
0,1,2,3,4,5,6,7,8,9
wenn wir zählen, dann 1,2,3 usw
wenn wir bei der 9 angekommen sind, dann kommt als nächstes eine 10
was war das?
ganz einfach.
wenn wir alles ziffern durch sind, dann nehmen wir einfach eine neue.
aus 9 wird 10.
wenn wir bei 19 sind, kommt die 20.
also.
wenn wir an der letzten stelle wieder bei der 9 sind, und um eins erhöhrn, dann
wird die nächste ziffer erhöht.
aus 19 wird 20.
wenn wir bei 99 sind, wird wieder eine neue fiffer dazugenommen.
dann sind wir bei 100.
um leichter zu erkennen, dass es eine zahl in unserem menschlichem system
handelt, machen wir einfach ein d hineter die zahl.
also aus 100 wird 100d
aus 43 wird 43d
aber wie macht das ein pc?
der hat doch nur 1 und 0.
ganz einfach.
wenn der bei der letzten ziffer in seinem zahlensystem
(binäres odaer auch Duales System gennant) ist, dann nimmte der auch einfach eine neue ziffer.
aus 1 wird 10
dann geht es so wieter.
aus 10 wird 11
aus 11 wird 100.
aber dieses binäre 100 hat nicht den gleichen wert wie unsere menschliche 100.
die binäre 100 hat den wert 5d.
Das hexdezimale system.
wenn jemand programiert, nimmt er nicht das binäre system.
das ist viel zu schwer zu überblicken.
dafür gibt es das hexadezimale system.
dass hexadezimale system hat 16 zahlen.
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
weenn hier die letzte stelle voll ist, (also f)
dann wird hier auch einfach erhöht.
aus f wird 10
und damit man weiß, dass eine zahl hexadezimal ist, schreibt man
einfach ein 0X davor, oder h dahinter.
also nicht 45f sondern 0x45F
(das ist, dass man 74d und 0x74 nicht verwechselt.)
UMRECHNEN
oft mals muss man hexadezimale oder binäre werte umrechnen.
das kann man ganz einfach.
schauen wir uns mal das dezimale system aus.
an der 1. stelle, hat die ziffer den wert ziffer*1
an der 2. stelle den wert ziffer*10
an der 3. stelle den wert ziffer*100 Oder auch ziffer*10*10
usw....
also:
die zahl 1407
wird zu
1*1000 + 4*100 + 0*10 + 7*1 = 1407
oder auch
1*(10*10*10) + 4*(10*10) + 0*10 + 7*1 = 1407
Im zehnersystem hat jede weitere ziffer den zehnfachen stellenwert von der ziffer davor.
Im Hexadezimalen system hat jede weitere ziffer den 16 fachen wert wie die ziffer davor.
im binärem system " " " " " 2 " " " " " " .
d.h.
0x4a7cd =
4*65536 + A*4096 + 7*256 + c*16 + d*1
oder auch
4*(16*16*16*16) + a*(16*16*16) + 7*(16*16) + c*16 + d*1
im binärem system sind die stellenwerte
1,2,4,8,16,32,64,128,265,512,1024,2048,4096, usw....
also wird aus 11101101
1*128 + 1*64 + 1*32 + 0*16 + 1*8 + 1*4 + 0*2 + 1*1
oder auch
1*(2*2*2*2*2*2*2) + 1*(2*2*2*2*2*2) + 1*(2*2*2*2*2) + 0*(2*2*2*2) + 1*(2*2*2) + 1*(2*2) + 0*2 + 1*1
aber für was braucht man das hexadezimale system?
ganz einfach!
um binäre zahlen übersichtlich und klein zu schreiben
kann man dazu nicht das Dezimale system nehmen?
ja, das könnte man.
aber mit dem hexadezimalen system ist das viel einfacher.
101101101 wäre im dezimalen system 365
mit dem hexasdezimalen system kann man das viel einfacher umrechenen.
man nimmt immer 4 bits (einsen und nullen)
und tauscht das gegen das hexadezimale zeichen aus.
0x1 = 1 ;0x2 = 10; 0x3 = 11 ..... 0xF = 1111
101101101 -> 1|0110|1101
-> 0x1 | 0x6|0xD
-> 0x16D
das ist doch viel besser als 365.
und vor allendingen leichter zu rechenen.
wenn man später richtig programiert, mit bits setzen usw,
dann wird sich herausstellen, dass das hexadezimale system eindeutig das bessere ist.
|