===== Binärcodierung ===== ==== Mit fünf Fingern anders zählen ==== Normalerweise kannst du mit fünf Fingern nur bis Fünf zählen. Wenn du die Zahlen jedoch anders codierst, kommst du locker bis 31. Dabei nutzt du einfach die Binärcodierung. ^ Kleiner Finger ^ Ringfinger ^ Mittelfinger ^ Zeigefinger ^ Daumen ^ | 24 | 23 | 22 | 21 | 20 | | 16er | 8er | 4er | 2er | 1er | === Beispiele === **10001:** 1*16 + 0*8 + 0*4 + 0*2 + 1*1 **= 17**\\ **01111:** 0*16 + 1*8 + 1*4 + 1*2 + 1*1 **= 15** === Alle Zahlen hintereinander === **Aufgabe 1:** Sieh dir die folgende Animation an und versuche dann selbständig von 0 bis 31 mit einer Hand zu zählen.
{{ :informatik:datenspuren:binary_counting.gif?direct |}} Bild: Wolfgang Wimleitner (überarbeitet von Christian Wurzer) für www.digikomp.at
**Aufgabe 2:**\\ Sobald du mit einer Hand binär zählen kannst, verwende auch die zweite Hand und setze die Zahlenfolge mit 32, 64, 128, 256 und 512 (25, 26, 27, 28, 29) fort. So kannst du mit beiden Händen Zahlen bis 1023 darstellen. ==== Bits und Bytes ==== Ein Bit ist eine Stelle einer Binärzahl und die kleinste Speichereinheit in Computern. Ein Bit kann den Wert 0 oder 1 besitzen. Ein Byte ist die zweitkleinste Speichereinheit von Computern und besteht aus 8 Bit. | | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 | | Zahl | 128er | 64er | 32er | 16er | 8er | 4er | 2er | 1er | | **10** | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | | **24** | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | **Aufgabe 3:**\\ * Schreibe die Zahlen 34, 78, 101 und 13 als Byte im Binärsystem. * Was ist die größte Zahl, die du mit einem Byte darstellen kannst? === Binär addieren === Man kann binär auch schriftlich addieren - dabei gilt: 0+0 = 0\\ 0+1 = 1\\ 1+1 = Überlauf (1 in der nächsten Stelle)\\ **Beispielrechnung:** | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | ====================================================================\\ | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | **Aufgabe 4:**\\ * Überprüfe die Beispielrechnung, indem du die Bytes ins Dezimalsystem umrechnest. * Addiere folgende Bytes schriftlich: 01001011 + 00111010 - prüfe deine Rechnung durch Umrechung ins Dezimalsystem. === Schwierig: Das Hexadezimalsystem (16er) === In der IT-Technik wird sehr oft das Hexadezimalsystem zur Basis 16 verwendet. | 163 | 162 | 161 | 160 | | 4096er | 256er | 16er | 1er | Man braucht zum Füllen der Spalten 16 Zahlen, die man mit arabischen Ziffern allein nicht mehr darstellen kann. Daher nimmt man die Buchstaben A(10), B(11), C(12), D(13), E(14), F(15) mit dazu. **Beispiel:** | 163 | 162 | 161 | 160 | | 4096er | 256er | 16er | 1er | | 0 | A | 5 | E | 0*4096 + 10*256 + 5*16 + 14*1 = **2654** **Aufgabe 5:**\\ a) Wie musst du folgende Zahlen im Hexadezimalsystem schreiben: 10000, 675, 56, 22734?\\ b) Wie viele Ziffern brauchst du im Hexadezimalsystem, um den kompletten Zahlenraum eines Byte abzudecken? ++++ Lösung | === Aufgabe 5a === **1000010**\\ * 2x4096 = 8192 (Rest: 1808) * 7x256 = 1792 (Rest: 16) * 1x16 = 16 (Rest: 0) Ergebnis: **027116**\\ | 163 | 162 | 161 | 160 | | 4096er | 256er | 16er | 1er | | 2 | 7 | 1 | 0 | **67510**\\ * 0x4096 = 0 * 2x256 = 512 (Rest: 163) * Ax16 = 160 (Rest: 3) * 3x1 = 3 (Rest: 0) Ergebnis: **02A316**\\ | 163 | 162 | 161 | 160 | | 4096er | 256er | 16er | 1er | | 0 | 2 | A | 3 | **5610**\\ * 0x4096 = 0 * 0x256 = 0 * 3x16 = 48 (Rest: 8) * 8x1 = 8 (Rest: 0) Ergebnis: **003816**\\ | 163 | 162 | 161 | 160 | | 4096er | 256er | 16er | 1er | | 0 | 0 | 3 | 8 | **2273410**\\ * 5x4096 = 20480 (Rest: 2254) * 8x256 = 2048 (Rest: 6) * 0x16 = 0 (Rest: 6) * 6x1 = 6 (Rest: 0) Ergebnis: **580616**\\ | 163 | 162 | 161 | 160 | | 4096er | 256er | 16er | 1er | | 5 | 8 | 0 | 6 | === Aufgabe 5b === Man muss bis 25510 kommen. **25510**\\ * Fx16 = 240 (Rest: 15) * F*1 = 15 (Rest: 15) Ergebnis: **FF16**\\ Man braucht für den vollen Zahlenbereich eines Byte also nur zwei Ziffern im Hexadezimalsystem. ++++