Information wird in Speicherzellen gespeichert
Speicherzelle | Low, 0 | High, 1 |
---|---|---|
Die Speicherzellen (Bits) in gebräuchlichen Datenverarbeitungs-Systemen können zwei Zustände annehmen:
Low oder High, 0 oder 1.
Kodierung von Information
Daher muss die zu verabeitende Information in diese binäre Darstellung umgewandelt, kodiert werden:
"Kodes, die nur zwei Zeichen verwenden, heissen binäre Kodes."
Bit 1 | Bit 0 | Schreibweise |
---|---|---|
00 | ||
01 | ||
10 | ||
11 |
Zahl | Kodierung | Bit 1 | Bit 0 |
---|---|---|---|
= | |||
= | |||
= | |||
= |
Die Zahlen 0..3 sollen kodiert werden. Das sind 4 Werte, mit einer Speicherzelle ist das so nicht möglich - die kann ja nur 0 oder 1. Man braucht zwei Stellen (Bits), damit sind 4 Kombinationen möglich!
Auf der einen Seite haben wir nun 4 Kombinationen von 2 Bits auf der anderen die 4 Zahlen 0..3.
Welche Bit-Kombination entspricht nun einer Zahl?
Die Zahlen müssen als Bit-Kombination kodiert werden.
Anzahl möglicher Kodierungen
Zahl | Kode 1 | Kode 2 | Kode 3 | .. | Kode 24 |
---|---|---|---|---|---|
0 | 00 | 00 | 00 | .. | 11 |
1 | 01 | 10 | 10 | .. | 10 |
2 | 10 | 01 | 11 | .. | 01 |
3 | 11 | 11 | 01 | .. | 00 |
Es gibt 4! = 1*2*3*4 = 24 Möglichkeiten einer Kodierung!
Verteile 4 verschiedene Hüte auf 4 Haken [Permutation, Fakultät].
Jede dieser Möglichkeiten ist ein Kode. Es lassen sich ausserordentlich viele binäre Kodes aufstellen, d.h. wie die Information im System dargestellt wird.
Angewendet werden jedoch nur einige wenige der vielen möglichen binären Kodes.
Eine besonders einfache Zuordnung ist das Dualsystem.
Informations-Kodierung-Systeme
Stelle | n | .. | 2 | 1 | 0 |
---|---|---|---|---|---|
Wertigkeit | 2n | .. | 22 | 21 | 20 |
Wert | - | .. | 4 | 2 | 1 |
Beispiel | - | .. | 1 | 0 | 1 |
5 = | 1*4+ | 0*2+ | 1*1 |
Man ordnet jeder Stelle einer Zahl eine Wertigkeit zu, pro Stelle zwei verschiedene Ziffern: 0,1
Stelle | n | .. | 2 | 1 | 0 |
---|---|---|---|---|---|
Wertigkeit | 8n | .. | 82 | 81 | 80 |
Wert | - | .. | 64 | 8 | 1 |
Beispiel | - | .. | 1 | 0 | 1 |
65 = | 1*64 + | 0*8 + | 1*1 |
Da so viele Einsen für Menschen schlecht lesbar waren, gruppierte man bei der Darstellung 3 Dual-Stellen zu einer Oktal-Stelle zusammen, pro Stelle 8 verschiedene Ziffern: 0,1,2,3,4,5,6,7
Hexadezimalsystem -16er (Sedezimalsystem)
Stelle | n | .. | 2 | 1 | 0 |
---|---|---|---|---|---|
Wertigkeit | 16n | .. | 162 | 161 | 160 |
Wert | - | .. | 256 | 16 | 1 |
Beispiel | - | .. | 1 | 0 | 1 |
257 = | 1*256 + | 0*16 + | 1*1 |
Das Oktalsystem hat sich als nicht besonders praktisch erwiesen, daher gruppiert man heute 4 Dual-Stellen zu einer Hex-Stelle zusammen, pro Stelle 16 verschiedene Ziffern: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
Geschickterweise lassen sich je 4 Bit (16 Zustände) zu einer Hex-Stelle zusammenfassen, man bezeichnet 4 Bit daher als ein Nibble, oder Halbbyte.
Wie sag ich es dem Computer (Eingabeformate von Zahlen)
Dezimalzahlen: 1234
Dualzahlen haben ein 0b davor: 0b110 = 6
Oktalzahlen haben eine 0 davor: 010 = 8
Hexadezimalzahlen haben 0x davor: 0x10 = 16
Umrechnung von Zahlensystemen
Stelle | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |
---|---|---|---|---|---|---|---|---|---|
Wertigkeit | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | |
Wert | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
Beispiel | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | |
Berechnung | 0*128 | + 1*64 | + 1*32 | + 1*16 | + 1*8 | + 0+4 | + 1*2 | + 1*1 | = 123 |
Dual -> Dezimal
Beispiel: 011110112 -> ?10
Übung
10102 -> 8+2 = 1010
Dezimal -> Dual
Beispiel: 12310 -> 111 10112
123 : 2 = 61 Rest: 1 61 : 2 = 30 Rest: 1 30 : 2 = 15 Rest: 0 15 : 2 = 7 Rest: 1 7 : 2 = 3 Rest: 1 3 : 2 = 1 Rest: 1 1 : 2 = 0 Rest: 1
Übung: 7710 -> 100 11012
77 : 2 = 38 Rest: 1
38 : 2 = 19 Rest: 0
19 : 2 = 9 Rest: 1
9 : 2 = 4 Rest: 1
4 : 2 = 2 Rest: 0
2 : 2 = 1 Rest: 0
1 : 2 = 0 Rest: 1
Übung: 3510 -> 10 00112
35 : 2 = 17 Rest: 1
17 : 2 = 8 Rest: 1
8 : 2 = 4 Rest: 0
4 : 2 = 2 Rest: 0
2 : 2 = 1 Rest: 0
1 : 2 = 0 Rest: 1
Dezimal | Dualzahl | Hexziffer |
---|---|---|
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
Dual -> Hex
Beispiel: 1101 01112 -> D716
Bilde von rechts nach links Vierergruppen und wandle immer 4 Bit in Hexziffer um:
Dualzahl 1101 0111 Hexziffer D 7
Übungen
10102 -> A16
000100012 -> 1116
Hex -> Dual
Problem: D716 -> 1101 01112
Wandle Hexziffern in Dualzahlen um:
Hexzahl D 7 Dualzahl 1101 0111
Übungen
1216 -> 0001 00102
AFFE16 -> 1010 1111 1111 11102
Hex -> Dezimal
Multipliziere entsprechend der Wertigkeit:
(D=13) 13 * 161 + 7 * 160 = 208 + 7 = 215
Übungen
1216 -> 16+2 = 1810
AA16 -> 160 + 10 = 17010
Dezimal -> Hex
123 : 16 = 7 Rest: 11 -> B 7 : 16 = 0 Rest: 7 -> 7
77 : 16 = 4 Rest: 13 -> D
4 : 16 = 0 Rest: 4 -> 4
35 : 16 = 2 Rest: 3 -> 3
2 : 16 = 0 Rest: 2 -> 2
Weitere Aufgaben...
Einheiten sind Binär Ki Mi Gi Ti
Beispiel Klassisch | Größe | Abkürzung neu | Beispiele |
---|---|---|---|
Kilo 1 KB | 210 = 1024 | Ki | 1 KiB für 1024 Byte |
Mega 1 MB | 220 | Mi | 1 MiB für 10242 Byte |
Giga 1 GB | 230 | Gi | 1 GiB für 10243 Byte |
Terra 1 TB | 240 | Ti | 1 TiB für 10244 Byte |
Das Informatiker-Kilo wiegt 1024. Um dies zu kennzeichen werden neuerdings die Abkürzugen um ein 'i' erweitert: KiBiByte für KiloBinaryByte oder kurz KiB.
Links zur Vertiefung: http://de.wikipedia.org/wiki/Kibibyte http://de.wikipedia.org/wiki/Datenmenge
Adressrechnen
Adressen n | Rechnung | Leitungen | Adressbereich Binär | Adressbereich HEX |
---|---|---|---|---|
2 | log2 2 = | 1 | 0 .. 1 | 0 .. 1 |
16 | log2 16 = | 4 | 0 .. 1111 | 0 .. F |
256 | log2 256 = | 8 | 0 .. 1111 1111 | 0 .. FF |
1k = 1.024 | log2 1024 = | 10 | 0 .. 11 1111 1111 | 0 .. 3 FF |
64k = 65536 | log2 65536 = | 16 | 0 .. 1111 1111 1111 1111 | 0 .. FF FF |
1M = 1.048.576 | log2 1M = | 20 | 0 .. 20 Einsen | 0 .. F FF FF |
1G = 1.073.741.824 | log2 1G = | 30 | 0 .. 30 Einsen | 0 .. 3F FF FF FF |