1.1 IT-Zahlensysteme
Die derzeitige Informationstechnik arbeitet mit Datenleitungen und Speichern, die nur zwei Zustände kennen:
0 und 1 -Binär.
Das Bit ist die kleinste Datenspeichereinheit und kann die Werte 0 oder 1 speichern, ein binärer Speicher.
Wenn ich mehr als 2 Werte speichern will muss ich mehr Bits kombinieren. Bsp. 2 Bits:
Kombination | Bit1 | Bit0 |
---|---|---|
00 | 0 | 0 |
01 | 0 | 1 |
10 | 1 | 0 |
11 | 1 | 1 |
Jedes weitere Bit verdoppelt die Anzahl der Kombinationen: Schreibe alle Kombinationen mit n Bits auf und schreibe überall links eine 0 davor, dann schreibe alle Kombinationen mit n Bit und einer 1 davor darunter:
Die Anzahl der möglichen Kombinationen mit n Bits lässt sich leicht berechnen: 2n
Wie viele Kombinationen gibt es mit 4 Bits, schreibe alle auf. Wie viele Bits braucht es für 16, 32, .. Werte?
Kombination | Bit2 | Bit1 | Bit0 |
---|---|---|---|
000 | 0 | 0 | 0 |
001 | 0 | 0 | 1 |
010 | 0 | 1 | 0 |
011 | 0 | 1 | 1 |
100 | 1 | 0 | 0 |
101 | 1 | 0 | 1 |
110 | 1 | 1 | 0 |
111 | 1 | 1 | 1 |
Bits | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
# Werte | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | 32768 | 65536 |
Binäre Kodierung von Information
Nun haben wir also Bits als Datenspeicher und können Kombinationen aufschreiben. Aber welche Bedeutung haben diese Kombinationen. Bsp. Die Werte 0..3 sollen binär gespeichert werden… Möglichkeiten…
Stellenwertsystem, Dualzahlen, Umrechnen siehe https://mezdata.de/ti-basis/010_zahlensysteme/index.php
Achtung Verwirrung: Binärzahl meint einfach die Darstellung von Information mit 0en und 1en. Dualzahl ist die Kodierung mit dem Stellenwertsystem eines Dezimalwertes in eine Binärzahl, also eine spezielle von vielen möglichen Kodierungen. Es gibt noch andere technisch praktische Kodierungen von Dezimalwerten zu Binärzahlen, z.B. der Gray-Code.
Welchen Wert hat die Größte-Dual-Zahl (GDZ) mit n Bit?
Bits | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
GDZ Dual | 0b1 | 0b11 | 0b111 | 0b1111 | 0b11111 | 0b111111 | 0b1111111 | 0b11111111 | 9 1en | 10 1en | 11 1en | 12 1en |
GDZ Dez | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 |
GDZ Hex | 0x1 | 0x3 | 0x7 | 0xF | 0x1F | 0x3F | 0x7F | 0xFF | 0x1FF | 0x3FF | 0x7FF | 0xFFF |
Besser lesbar durch Hexadezimalsystem
Viele 0en und 1en hintereinander sind schlecht lesbar, deshalb werden gerne 4 Bit zu einer Hexadezimal-Ziffer zusammen gefasst. Da 4 Bit die 16 (Hexadezimal) Werte von 0..15 haben können sind für die Werte 10..15 weitere Ziffern notwendig, deshalb werden schlicht die Buchstaben A..F dafür verwendet.
Wert | 1 | 2 | .. | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Dual | 0b0001 | 0b0010 | .. | 0b1000 | 0b1001 | 0b1010 | 0b1011 | 0b1100 | 0b1101 | 0b1110 | 0b1111 | 0b10000 |
Hex | 0x1 | 0x2 | .. | 0x8 | 0x9 | 0xA | 0xB | 0xC | 0xD | 0xE | 0xF | 0x10 |
4 Bit sind ein Nibble, 8 Bit sind ein Byte. 16 bzw. 32 Bit werden als Wort , 32 bzw. 64 Bit als Doppelwort bezeichnet. Siehe Wikipedia [Datenwort]. Umwandeln von Bin<->Hex, Dez<->Hex siehe https://mezdata.de/ti-basis/010_zahlensysteme/index.php
Einheiten KiB, MiB…
Sollen grössere Mengen von Bytes gut lesbar angegeben werden bieten sich Abkürzungen wie Kilo und Mega usw. an. Z.B. 1000 Byte = 1 kB (Kilobyte). Allerdings wird bei Speicherbausteinen nicht das Dezimal- sondern das Binärsystem verwendet, daher bekommt man eher 1024 Byte und nicht 1000 Byte. Dies führte zu Verwirrung:
[Wikipedia: Bedeutungen von Dezimal- und Binärpräfixen für große Anzahlen von Bytes]
Daher wurde für Anwendungen mit binär adressierten Speichern Binäreinheiten eingeführt Ki = 1024 statt k = 1000, das B wird oft weggelassen also Ki statt KiB, Mi statt MiB.
Hinweis: Das Wort oder der Begriff Anzahl oder Nummer wird oft mit # verkürzt: Anzahl Bits -> # Bits
# Bits zur Kodierung der Anzahl | 10 | 20 | 30 | 40 | 50 | 60 | 70 |
---|---|---|---|---|---|---|---|
Wert | 210 = 1024 | 220 = 10242 | 230 = 10243 | 240 | 250 | 260 | 270 |
Bezeichnung | Ki | Mi | Gi | Ti | Pi | Ei | Zi |
Praktischer Nutzen, typische Beispiele:
Wie viele Werte können mit 16 Bit kodiert werden? 216 = 26 * 210 = 64 Ki Werte
Wie viele Farben können mit 3 Byte kodiert werden? 3*8=24; 224 = 24 * 220 = 16 Mi Farben: ca. 16 Millionen Farben
ToDo: Negative Zahlen, Rechnen,
Auf meiner “alten” Seite: https://mezdata.de/ti-basis/010_zahlensysteme/index.php
Spiel zum Üben: https://games.penjee.com/binary-numbers-game/
Arbeitsblatt zum Üben
Hier die Tabellenkalkulation um ein Arbeitsblatt zu erstellen, die Werte werden durch Zufall erzeugt.
Alles verstanden?
Da fehlen noch nette Bilder zu den Aufgaben 😍, mir schicken..
Negative Zahlen
MezMedia: Datendarstellung in Digitalen Systemen
Wikipedia: Zweierkomplement
Übung: 8-Bit Zahlen mit Vorzeichen (signed byte)
Dezimal | Dualzahl | Hexadezimal |
---|---|---|
-1 | 0b11111111 | 0xFF |
127 | 0b01111111 | 0x7F |
-128 | 0b10000000 | 0x80 |
0x81 | ||
-2 | ||
0xAA |
Lösung
Dezimal | Dualzahl | Hexadezimal |
---|---|---|
-127 | 0b1000 0001 | 0x81 |
-2 | 0b1111 1110 | 0xFE |
-86 | 0x1010 1010 | 0xAA |