Einstieg in das Thema
Was brauchst du als Basiswissen?
Du solltest Binärzahlen kennen und vor allem die Subtraktion beherrschen.
Hinweis: In der letzten Lektion brauchst du Wissen über Potenzen, das normalerweise erst in Klasse 9 oder 10 behandelt wird. Du kannst dieses Kapitel gern später bearbeiten, wenn 3,1·10⁻¹² zu kompliziert aussieht.
Worum geht es?
Bei der Subtraktion haben wir negative Zahlen einfach ignoriert. Natürlich kann man ganz einfach -1001 schreiben und das ist -9.
Was aber macht ein Computer? Der kennt doch nur Nullen und Einsen. Ein Vorzeichen gibt es nicht. Wie geht dieser damit um?
Was ist das Ziel?
Am Ende weißt du, wie negative Zahlen im Computer aussehen (Spoiler: Durch einen Blick in den Speicher kann man es nicht erkennen).
Erarbeitung
Ein paar Worte vorab
Aufgaben zur Erarbeitung
Du kennst die Darstellungen für -1 und -2.
Aufgabe 1: Berechne -3 und -4. Gib die Ergebnisse für 8 Bit Breite an.Aufgabe 2: Untersuche, welche Aussage richtig ist: a) Um eine negative Zahl zu finden, muss man nur alle Bits der Zahl negieren (0->1, 1->0). b) Um eine negative Zahl zu finden, muss man nur alle Bits der Zahl negieren und 1 addieren. c) Um eine negative Zahl zu finden, muss man nur alle Bits der Zahl negieren und 1 subtrahieren.
Aufgabe 3: Um welche negativen Zahlen handelt es sich? 11111100, 11111001, 11111010?
Vertiefende Aufgaben
Man sieht also auch am höchsten Bit, dass die Zahl negativ ist, wenn dieses (also 2^7) gesetzt ist, sonst ist die Zahl positiv.
Aufgabe 4: Werden die Zahlen als positiv oder negativ erkannt: 10000000, 11111100, 01111111, 00000000?Aufgabe 5: Was ist bei 8 Bit die größte positive Zahl, die man darstellen kann?
Aufgabe 6: Was ist bei 8 Bit die kleinste negative Zahl, die man darstellen kann?
Jetzt wird es noch ein wenig schwerer
Mit 8 Bit, kann man nur kleine Zahlen darstellen. Normalerweise fasst man 32 Bit (also 4Byte) oder 64Bit (also 8Byte) zusammen.
- Wie viele verschiedene Zahlen lassen sich mit 32 Bit darstellen?
- Was ist die kleinste negative Zahl, die sich mit 32 Bit darstellen lässt, wenn wir wieder davon ausgehen, dass das höchste Bit (2^31) bei negativen Zahlen gesetzt ist?
- Was ist die größe positive Zahl, die man mit 32 Bit darstellen kann?
Noch mehr?
- In einer Programmiersprache müssen Variablen erzeugt werden. Variablen können sich einen Wert speichern. Du siehst im Quelltext:
int zahl1 = 0;
unsigned int zahl2 = 0;
Welche Variable kann sich negative Zahlen merken?
Zusammenfassung
Was muss man wissen/können?
Du musst wissen,
- dass es im Computer nur Nullen und Einsen, aber kein Minus gibt und
- dass man negative Zahlen anders schreibe muss,
- sie aber dummerweise von außen nicht von positiven Zhalen zu unterscheiden sind.
Du kannst die Bitmuster negativer Zahlen erstellen (invertieren und 1 addieren).
Was können anschließende Themen sein?
Noch eine Besonderheit im Computer sind die Kommazahlen. Wir gucken uns das kurz(!) an.