====== Ganze Zahlen ℤ ====== In Informatiksystemen ist es auch nötig, mit negativen Zahlen zu arbeiten. So kann man eine Subtraktion als Addition der Gegenzahl auffassen: ''11-6 = 11+(-6)'' - es vereinfacht also vieles, wenn man weiß, wie man diese Gegenzahlen finden kann. **Aber wie kann man negative Zahlen im Binärsystem darstellen?** ===== Vorzeichenbit ===== **Ein erster Gedanke:** Man könnte einfach das Bit ganz links als "Vorzeichenbit" verwenden. * +4210 = 001010102 * --4210 = 101010102 ---- {{:aufgabe.png?nolink |}} === (A1) === Verwende die binäre Darstellung für +42 und -42 von oben und addiere schriftlich (im Binärsystem) jeweils die Zahl 310=0112. Erläutere anhand dieses Beispiels, warum die Darstellung mit einem "Vorzeichenbit" problematisch ist. ++++ Hinweis | {{ .:vorzeichenbit.png?300 |}} ++++ ---- Wenn man sich auf eine festgelegte Stellenzahl beschränkt, kann man sich die Darstellung ganzer Zahlen im Binärsystem an einem "**Zahlenkreis**" veranschaulichen. Für Zahlen mit einer Länge von 3Bit sieht dieser so aus: {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:3bit_vorzeichenbit.png?250 |}} Man kann hier schön sehen, dass man mit drei Bit alle Zahlen von -3 bis +3 darstellen kann. ---- {{:aufgabe.png?nolink |}} === (A2) === * Kannst du am Zahlenkreis weitere Probleme der Darstellung negativer Zahlen mit einem Vorzeichenbit erkennen? * Berechne ''+1 + (-1)'' in der aus dem Kreis entnommenen Binärdarstellung. Erkennst du ein Problem. * Zeichne den Zahlenkreis für 4Bit lange Binärzahlen. Welchen Wertebereich kann man hier abdecken? * Formuliere stichwortartig eine kurze Zusammenfassung zur Darstellung negativer Zahlen mit dem Vorzeichenbit - siehst du Vorteile? Siehst du Nachteile? Ist das eine gute Darstellungsmöglichkeit? ++++ Hinweis "weiteres Problem": | Woran liegt es, dass man statt der üblichen 8 Zahlen, die man mit 3Bit darstellen kann nur 7 Zahlen darstellen kann? ++++ ++++ Lösung Rechung | {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:2023-10-25_15-49.png?300 |}} ++++ ++++ Hinweis: Zahlenkreis 4Bit | Du kannst dich an folgendem, teilweise ausgefüllten Kreis orientieren: {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:4bit_vorzeichenbit_leer.png?250 |}} ++++ ===== Komplementdarstellungen ===== Um die verheerende Rechenschwäche des Vorzeichenbits zu beheben, haben sich **Komplementdarstellungen** für negative Zahlen etabliert. Um das "Komplement" einer binären Zahl zu bilden, werden an allen Stellen 1 und 0 vertauscht. Dies hat den Vorteil, dass Rechenoperationen wie z.B. die Addition in beiden Zahlenbereichen funktionieren. ==== Einerkomplement ==== Eine negative Zahl im Dezimalsystem wird bei der **Einerkomplement**-Darstellung zunächst als Betrag in eine Binärzahl umgewandelt und dann das Komplement gebildet. Negative Zahlen beginnen dabei stets mit einer 1, d.h. man muss evtl. links eine oder mehrere 0-en anfügen, um bei der Komplementbildung die "Vorzeichen-Eins" zu erhalten. * Wenn man --610 im Einerkomplement darstellen möchte, ermittelt man zunächst die Binärdarstellung von +610= 1102 * Nun fügt man links eine weitere 0 an: 01102 - diese Verändert zunächst nichts am Zahlenwert, schafft aber Platz für eine weitere Stelle für das Vorzeichen. * Abschließend bildet man das Komplement und erhält die **Einerkomplementdarstellung** für --610=10012. ---- {{:aufgabe.png?nolink |}} === (A3) === Auch die Einerkomplementdarstellung kann man sich an einem Zahlenkreis veranschaulichen - für Binärzahlen der Länge 4 Bit sieht der (unvollständige) Zahlenkreis so aus: {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:4b_einerkomplement_unvoll.png?300 |}} * Vervollständige den Zahlenkreis. * Berechne schriftlich im Binärsystem --5 + 2. * Berechne schriftlich im Binärsystem --5 + 6. * Bestimme die Einerkomplementdarstellung von 00002 * Woran kann man bei der Darstellung im Einerkomplement negative Binärzahlen erkennen? * Welche Folgerungen ziehst du aus den Ergebnissen dieser Aufgabe? ++++ Lösung: Zahlenkreis | {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:einerkomplement.png?300 |}} ++++ ++++ Lösungen: Rechnungen | ++++ ==== Zweierkomplement ==== Die Idee des ZK ist es, jeweils das Bit mit der höchsten Wertigkeit als negativen Wert zu definieren. Ein Beispiel anhand eines 8-Bit-Wertes: |Stelle | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | |Wertigkeit 2er-Potenz | --27 | 26 | 25| 24| 23| 22 | 21 | 20 | |Wertigkeit dezimal | --128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | ---- {{:aufgabe.png?nolink |}} === (A4) === Die Tabelle oben sieht für Binärzahlen der Länge 4 Bit so aus: | Stelle | 3 | 2 | 1 | 0 | | Wertigkeit 2er-Potenz | --23 | 22 | 21 | 20 | | Wertigkeit dezimal | --8 | 4 | 2 | 1 | Der Zahlenkreis sieht für 4 Bit Binärzahlen im Zweierkomplement (unvollständig) so aus: {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:4b_zweierkomplement_unvoll.png?300 |}} * Vervollständige den Zahlenkreis * Kannst du ein allgemeines Vorgehen formulieren, wie man aus einer positiven Binärzahl $z$ die negative Binärzahl $-z$ in der Zweierkomplementdarstellung erhalten kann? ++++ Lösung Zahlenkreis | {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:zweierkomplement.png?300 |}} ++++ ++++ Hinweis Vorgehen | Betrachte die Zahlen im Zahlenkreis - was muss man machen, um aus dem einfachen Komplement einer Zahl die Zweierkomplementdarstellung ihrer Gegenzahl zu erhalten? ++++ ---- {{:aufgabe.png?nolink |}} === (A5) === Das folgende Bild zeigt den Zahlenkreis für 8Bit-Binärzahlen im Zweierkomplement: {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:zkkreis.png?300 |}} * Welcher Zahlbereich lässt sich im Zweierkomplement mit 8 Bit darstellen? * Welcher Zahlbereich lässt sich im Zweierkomplement mit n Bit darstellen? * Rechne um - die Binärzahlen sind im Zweierkomplement gegeben: * 101010102 = ?? 10 * 111100002 = ?? 10 * --9810 = ?? 2 * --310 = ?? 2 * Wie kann man anhand einer Binärzahl im Zweierkomplement erkennen, ob diese positiv oder negativ ist? * Verwende die Zweierkomplementdarstellung: * Berechne schriftlich im Binärsystem –5 + 2. * Berechne schriftlich im Binärsystem –5 + 6. ++++ Lösung: Umrechungen | {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:umr_2k.png?550 |}} ++++ ++++ Lösung: Addition | {{ :faecher:informatik:oberstufe:codierung:zahlendarstellungen:ganze_zahlen:rech2k.png?400 |}} ++++ ---- Mithilfe des sogenannten **Zweierkomplements** lassen sich ganze Zahlen -- auch negative -- als Binärzahlen so darstellen, **dass alle Rechenregeln wie bislang funktionieren**. Wenn die Zahl $z$ als Binärzahl gegeben ist, erhält man $-z$ in Zweierkomplementdarstellung, indem man erst alle Bits invertiert und zum Ergebnis dieser Operation 1 addiert. //Beispiel:// 310=00112. man erhält -3 im Zweierkomplement, indem man zunächst alle Stellen der Binärzahl invertiert: 11002. Dann addiert man 1: 11012=-8+4+1=-3. === Material === {{simplefilelist>.:*}} ----- Diese Seite entstand unter Verwendung von Ideen und Material von D. Zechnall.