====== 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.