faecher:informatik:oberstufe:techinf:assembler:zahlen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:techinf:assembler:zahlen:start [27.09.2021 17:14] – [Negative Zahlen - Zweierkomplement] sbelfaecher:informatik:oberstufe:techinf:assembler:zahlen:start [05.10.2022 18:38] (aktuell) – [Negative Zahlen - Zweierkomplement] Frank Schiebel
Zeile 49: Zeile 49:
 {{ :faecher:informatik:oberstufe:techinf:assembler:zahlen:2erkompl.png?nolink |}} {{ :faecher:informatik:oberstufe:techinf:assembler:zahlen:2erkompl.png?nolink |}}
  
-Die Zahl oben steht für ''- 1* 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = -16 + 8 + 4 + 0 + 1 = -3d'' +Die Zahl oben steht für ''**-** 1 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = -16 + 8 + 4 + 0 + 1 = -3d''  
 + 
 +Die Zahl unten steht für ''**-** 0 * 2^4 + 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = -0 + 8 + 4 + 0 + 1 = 13d''  
 + 
 +Eine negative Zahl hat also stets eine 1 an der höchstwertigen Stelle, denn die anderen Stellen können auf keinen Fall den neagtiven Wert ausgleichen: ''1111 1111 = -1d'' 
 + 
 +Zahlen mit der Länge 8 Bit im Zweierkomplement haben also einen Wertebereich von ''-128 ... 127'' 
 + 
 +Die Darstellung im Zweierkomplement führt zu "nahtloser" Addition negativer Zahlen: 
 + 
 +{{ :faecher:informatik:oberstufe:techinf:assembler:zahlen:auswahl_007.png?nolink |}} 
 + 
 +Addiert man zu ''-1'' die Zahl ''1'' ergibt sich korrekterweise ''0'' - man muss lediglich das Carry-Flag ignorieren. Genau so rechnet ein Mikroprozessor. 
 + 
 +==== Überlauf ==== 
 + 
 +Beim Rechnen mit Zahlen in Zweierkomplementdarstellung lauert eine andere Gefahr: Ein Übertrag auf das Vorzeichenbit, 
 +der sog. **Überlauf** ändert nämlich das Vorzeichen der Zahl! Dies passiert allerdings nur, wenn 
 +nicht gleichzeitig auch ein **Übertrag** entsteht und Mikroprozessoren setzen auch nur dann das 
 +Überlaufflag. 
 + 
 +{{ :faecher:informatik:oberstufe:techinf:assembler:zahlen:auswahl_009.png?nolink |}} 
 + 
 +Bei der Addition von ''1'' zu ''127'' findet ein Überlauf auf das Vorzeichenbit statt, man erhält plötzlich ''-128'' als Ergebnis. 
 +==== Zahlenringe für 4Bit-Zahlen ==== 
 + 
 +Unten sieht man eine recht intuitive Darstellung der Situation als "Zahlenring" für 4 Bit lange Binärzahlen. Links vorzeichenlose Zahlen mit dem Übertrag, rechts Zahlen in Zweierkomplementdarstellung mit Überlauf. 
 + 
 +{{ :faecher:informatik:oberstufe:techinf:assembler:zahlen:auswahl_008.png?nolink |}} 
 + 
 +==== Zahl und Gegenzahl im Zweierkomplement ==== 
 + 
 +Wenn man zu einer gegebenen Zahl im Zweierkomplement die Gegenzahl bestimmen möchte, kann man wie folgt vorgehen: 
 + 
 +  * ''1011'' ist ''-8 + 3 = -5d''. Gesucht ist also die Binärdarstellung von ''+5d'' 
 +  * Die invertierte Zahl ist ''0100'' (4d)  
 +  * Die Gegenzahl ist ''0101'' (5d) 
 + 
 +Das klappt immer!  
 + 
 +$$-Z = \overline{Z} +1 $$ 
 + 
  • faecher/informatik/oberstufe/techinf/assembler/zahlen/start.1632762841.txt.gz
  • Zuletzt geändert: 27.09.2021 17:14
  • von sbel