Darstellung ganzer Zahlen als Bitvektoren

Ähnliche Dokumente
Rückblick. Zahlendarstellung zu einer beliebigen Basis b. Umwandlung zwischen Zahlendarstellung (214) 5 = (278) 10 =(?) 8

Basisinformationstechnologie I

Zum Nachdenken. Welche Eigenschaften einer Vorzeichendarstellung. erreichen? Wie könnte man Vorzeichenzahlen darstellen?

2.Vorlesung Grundlagen der Informatik

Einführung in die Informatik I

Binäre Darstellung ganzer Zahlen

Kapitel 5: Darstellung von Daten im Rechner

Zahlensysteme und Kodes. Prof. Metzler

1 Körper. Wir definieren nun, was wir unter einem Körper verstehen, und sehen dann, dass es noch andere, ganz kleine Körper gibt:

Merke: Mit jedem zusätzlichen Bit verdoppelt sich die Anzahl der darstellbaren Zahlen bzw. Zustände

Logische Grundlagen der Mathematik, WS 2014/15

Elemente der Mathematik - Sommer 2017

6.2 Kodierung von Zahlen

Lineare Algebra I 5. Tutorium Die Restklassenringe /n

= k 0+k 0 ( ). Wir addieren (0 k) zu den Seiten der Gleichung ( ): 0 = k 0.

6.1 Natürliche Zahlen 6.2 Induktion und Rekursion 6.3 Ganze, rationale, reelle und komplexe Zahlen 6.4 Darstellung von Zahlen

Musterlösung 1. Mikroprozessortechnik und Eingebettete Systeme 1 WS2015/2016

4. Induktives Definieren - Themenübersicht

6.1 Natürliche Zahlen. 6. Zahlen. 6.1 Natürliche Zahlen

Übung Praktische Informatik II

Vorlesung 4. Tilman Bauer. 13. September 2007

Kapitel 1 Die natürlichen und die ganze Zahlen

Wandeln Sie die folgenden Zahlen in Binärzahlen und Hexadezimalzahlen. Teilen durch die Basis des Zahlensystems. Der jeweilige Rest ergibt die Ziffer.

1 Modulare Arithmetik

01 - Zahlendarstellung

Vollständige Induktion

Vollständige Induktion

Zahlendarstellungen und Rechnerarithmetik*

II. Grundlagen der Programmierung

Grundlagen der Informatik 2 Grundlagen der Digitaltechnik. 1. Zahlensysteme

Inhaltsangabe 3.1 Zahlensysteme und Darstellung natürlicher Zahlen Darstellung ganzer Zahlen

Dipl.-Ing. Halit Ünver Datenbanken/Künstliche Intelligenz FAW/n. Zahlensysteme

Vorlesung 4. Tilman Bauer. 13. September Wir befassen uns in dieser Vorlesung noch einmal mit Mengen.

FAKULTÄT FÜR INFORMATIK

Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule

2 ARITHM. UND LOG. AUSDRÜCKE ZAHLEN

Einführung in die Informatik I

1. Das dekadische Ziffernsystem (Dezimalsystem) Eine ganze Zahl z kann man als Summe von Potenzen zur Basis 10 darstellen:

Tutorium Rechnerorganisation

Informatik I Modul 2: Rechnerarithmetik (1)

Modul 2: Rechnerarithmetik (1) Informatik I. Modul 2: Rechnerarithmetik (1) Rechnerarithmetik. Formale Grundlagen. Zahlensysteme (1) Zahlensysteme (2)

1 Dualsystem Dualzahlen mit Vorzeichen 4. 2 Hexadezimalsystem Hexadezimalzahlen mit Vorzeichen Oktalsystem 13 4 Zahlenring 14

Technische Informatik - Eine Einführung

Lineare Algebra 6. Übungsblatt

Diskrete Strukturen 5.9 Permutationsgruppen 168/558 c Ernst W. Mayr

Zahlen in Binärdarstellung

Rechnerarithmetik. Vorlesung im Sommersemester Eberhard Zehendner. FSU Jena. Thema: Vorzeichenlose ganze Zahlen

DuE-Tutorien 17 und 18

Zahlensysteme: Oktal- und Hexadezimalsystem

5 Grundlagen der Zahlentheorie

GTI. Hannes Diener. 18. Juni. ENC B-0123,

Grundlagen der Informatik

BB/CS- SS00 Rechner im Überblick 1/1. Ein Stellenwertsystem (Zahlensystem) ist ein Tripel S = (b, Z, δ) mit den folgenden Eigenschaften:

Grundlagen der Informatik I. Übung

5 Zahlenformate und deren Grenzen

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form

Zahlensysteme. Digitale Rechner speichern Daten im Dualsystem 435 dez = binär

Lösungen: zu 1. a.) b.) c.)

Übung zur Vorlesung Berechenbarkeit und Komplexität

Zahlen 25 = = 0.08

Inhalt. Zahlendarstellungen

Kapitel 2. Zahlensysteme, Darstellung von Informationen

BSZ für Elektrotechnik Dresden. Zahlenformate. Dr.-Ing. Uwe Heiner Leichsenring

B: Basis des Zahlensystems 0 a i < B a i є N 0 B є (N > 1) Z = a 0 B 0 + a 1 B 1 + a 2 B a n-1 B n-1

Grundlagen der Arithmetik und Zahlentheorie

Donnerstag, 11. Dezember 03 Satz 2.2 Der Name Unterraum ist gerechtfertigt, denn jeder Unterraum U von V ist bzgl.

Datendarstellung Teil 2

Grundlagen der Rechnerarchitektur. Binäre Logik und Arithmetik

Körper der komplexen Zahlen (1)

Ein polyadisches Zahlensystem mit der Basis B ist ein Zahlensystem, in dem eine Zahl x nach Potenzen von B zerlegt wird.

Theoretische Informatik SS 03 Übung 3

Vorlesung 27. Der projektive Raum. Wir werden den projektiven Raum zunehmend mit mehr Strukturen versehen.

Einführung in die elektronische Datenverarbeitung. Zahlensysteme

Grundbegriffe der Informatik

Datendarstellung Teil 2

3 Verarbeitung und Speicherung elementarer Daten

00. Einiges zum Vektorraum R n

Zahlensysteme Seite -1- Zahlensysteme

Lösungsvorschlag 4. Übung Technische Grundlagen der Informatik II Sommersemester 2009

Konstruktion der reellen Zahlen

Satz 7. A sei eine Teilmenge des nichttrivialen Vektorraums (V,+, ). Dann sind die folgende Aussagen äquivalent.

Logische Grundlagen der Mathematik, WS 2014/15

Mathematik für Anwender I

Von den rationalen zu den reellen Zahlen

Einführung in die Programmierung Wintersemester 2008/09

Zahlensysteme. Wie Computer Zahlen darstellen und mit ihnen rechnen Peter Ziesche

Komplexe Zahlen. Bemerkungen. (i) Man zeigt leicht, dass C mit diesen beiden Operationen

Kapitel 13. Lineare Gleichungssysteme und Basen

2 Darstellung von Zahlen und Zeichen

Elemente der Algebra

Kapitel 4A: Einschub - Binärcodierung elementarer Datentypen. Einschub: Teile aus Kapitel 2 in Küchlin/Weber: Einführung in die Informatik

FAKULTÄT FÜR INFORMATIK

Grundlagen der Technischen Informatik. 3. Übung. Christian Knell Keine Garantie für Korrekt-/Vollständigkeit

Mengenlehre. ALGEBRA Kapitel 1 MNProfil - Mittelstufe KZN. Ronald Balestra CH Zürich Name: Vorname:

Übung Programmieren - Zahlendarstellung, SSH, SCP, Shellskripte -

Vorkurs: Mathematik für Informatiker

Vollständige Induktion

2. Teilbarkeit. Euklidischer Algorithmus

Zahlen im Computer (Klasse 7 Aufbaukurs Informatik)

Transkript:

Darstellung ganzer Zahlen als Bitvektoren Jan Peleska Jan Bredereke Universität Bremen, Fachbereich Informatik Vers. 1.2 1 Darstellung natürlicher Zahlen z N 0 und Addition 1.1 Dualzahlen dargestellt durch Bitvektoren Ein Maschinenwort ist ein Bitvektor. Um mit einem Rechner Zahlen verarbeiten können, können wir eine Zahl als Dualzahl und diese durch einen Bitvektor darstellen: Beispiel: n 1 (x n 1... x 0 ) interpretiert als z = 2 i x i mit x i {0, 1} (1) (1 0 1 0 1) interpretiert als 2 4 + 2 2 + 2 0 = 16 + 4 + 1 = 21 So dargestellte Dualzahlen (x n 1 kennen nur zwei Ziffern: Definition 1 (Menge der Binärziffern B) B = {0, 1}... x 0 ) sind Elemente aus B... B }{{} n mal = B n. Dualzahlen Formal beschreiben wir die Darstellung einer natürlichen Zahl z N 0 als Bitvektor durch eine Repräsentationsfunktion r: Definition 2 (Repräsentationsfunktion r) N 0 r B n, z (x n 1... x 0 ) mit mit Definitionsbereich dom r = {z N 0 z < 2 n } n 1 2 i x i = z Das heißt, daß der Bitvektor (x n 1... x 0 ) einfach die Folge der Dualziffern von z ist. 1

Den Beweis, daß die Repräsentation als Bitvektor wohldefiniert und eindeutig ist, lassen wir hier aus. Er beruht darauf, daß sich Zahlen in verschiedenen Zahlensystemen ineinander umwandeln lassen, und zwar eindeutig. In der Programmiersprache C wird die Repräsentationsfunktion r(z) = x implementiert durch die Funktion scanf("%u",&x) (wobei die Variable x definiert ist als unsigned int x;). 1.2 Abstrakte Interpretation Die obige umgekehrte Interpretation eines Bitvektors als natürliche Zahl z N 0 beschreiben wir formal durch eine Abstraktionsfunktion ρ: Definition 3 (Abstraktionsfunktion ρ) B n n 1 ρ N 0, (x n 1... x 0 ) ρ(x n 1... x 0 ) = df 2 i x i In der Programmiersprache C wird die Abstraktionsfunktion ρ(x) implementiert durch die Funktion printf("%u",x) (wobei die Variable x wiederum definiert ist als unsigned int x;). 1.3 Rechenoperationen auf Bits und Bitvektoren Auf B definieren wir folgende Operationen: Definition 4 (Multiplikation auf B) : B B B, (0, 0) 0 (0, 1) 0 (1, 0) 0 (1, 1) 1 Diese Abbildung läßt sich auch durch eine Funktionstafel darstellen: x y x y 0 0 0 0 1 0 1 0 0 1 1 1 Definition 5 (Addition modulo 2 auf B) : B B B, x y x y 0 0 0 0 1 1 1 0 1 1 1 0 2

Definition 6 (Addition + auf B n ) mit + : B n B n B n+1, (x n 1... x 0 ) + (y n 1... y 0 ) = df (u n 1 (x n 1 y n 1 u n 2 )... (x 1 y 1 u 0 ) (x 0 y 0 )) u 0 = x 0 y 0 u l = x l y l + (x l y l ) u l 1 für 1 l n Dabei ist u l der von Stelle l erhaltene Übertrag. Das hier verwendete Schema wurde früher praktisch in Hardware realisiert, und zwar als sogenannter Serienaddierer. 1.4 Eigenschaften Satz 1 Das folgende Diagramm kommutiert: d.h. N 0 N 0 + ρ ρ N 0 ρ B n B n + B n+1 n N. (x n 1... x 0 ), (y n 1... y 0 ) B n. ρ(x n 1... x 0 ) + ρ(y n 1... y 0 ) = ρ n+1 ( (xn 1... x 0 ) + (y n 1... y 0 ) ) Dabei ist ρ n+1 die aus Definition 3 bekannte Abstraktionsfunktion ρ n+1 : B n+1 N 0, (x n... x 0 ) n 2i x i für vorzeichenlose Zahlen, allerdings auf B n+1 statt auf B n. Beweis: Zu zeigen ist: Für alle n N, (x n 1... x 0 ), (y n 1... y 0 ) B n gilt n 1 2 i (x i + y i ) } {{ } = df L = 2 n u n 1 + n 1 2 i (x i y i u i 1 ) + (x 0 y 0 ) i=1 } {{ } = df R (2) Beweis durch Induktion über n 2. 3

Sonderfall n = 1, (x 0 ), (y 0 ) B 1 : Zu zeigen ist: 0 2 i (x i + y i ) = 2 1 u 0 + (x 0 y 0 ) (3) Dies ist gleichbedeutend mit x 0 + y 0 = 2 x 0 y 0 + (x 0 y 0 ) (4) Der Beweis erfolgt durch Ausrechnen in einer Funktionstafel: x 0 y 0 x 0 + y 0 2x 0 y 0 + (x 0 y 0 ) 0 0 0 0 0 1 1 1 1 0 1 1 1 1 2 2 Fall n = 2, Induktionsverankerung: L = 1 2 i (x i + y i ) = 2(x 1 + y 1 ) + (x 0 + y 0 ) (5) R = 2 2 u 1 + 1 2 i (x i y i u i 1 ) + (x 0 y 0 ) (6) i=1 = 2 2 (x 1 y 1 + (x 1 y 1 )u 0 ) + 2(x 1 y 1 u 0 ) + (x 0 y 0 ) (7) = 4x 1 y 1 + 4(x 1 y 1 )x 0 y 0 + 2(x 1 y 1 (x 0 y 0 )) + (x 0 y 0 ) (8) Der Beweis erfolgt wiederum über eine Funktionstafel: x 1 y 1 L = 2(x 1 + y 1 ) + (x 0 + y 0 ) R =4x 1 y 1 + 4(x 1 y 1 )x 0 y 0 + 2(x 1 y 1 (x 0 y 0 )) + (x 0 y 0 ) 0 0 x 0 + y 0 2x 0 y 0 + (x 0 y 0 ) ( ) 0 1 (wie Fall 1/0 aus Symmetriegründen) 1 0 2 + x 0 + y 0 4x 0 y 0 + 2(1 (x 0 y 0 )) + (x 0 y 0 ) ( ) 1 1 4 + x 0 + y 0 4 + 2x 0 y 0 + (x 0 y 0 ) ( ) Die Gleichungen ( ) und ( ) sind wegen der oben bewiesenen Gleichung (4) erfüllt. Die Gleichung ( ) weisen wir über eine weitere Funktionstafel nach: x 0 y 0 2 + (x 0 + y 0 ) 4x 0 y 0 + 2(1 (x 0 y 0 )) + (x 0 y 0 ) 0 0 2 2 0 1 3 2 + 1 1 0 3 2 + 1 1 1 4 4 4

Induktionsannahme: Es gelte die Behauptung für n = k, k 2: k 1 2 i (x i + y i ) = 2 k u k 1 + k 1 2 i (x i y i u i 1 ) + (x 0 y 0 ) (9) i=1 Induktionsschritt: Fall n = k + 1 Zu zeigen ist: k 2 i (x i + y i ) } {{ } L = 2 k+1 u k + Dies ist gleichbedeutend mit k 2 i (x i y i u i 1 ) + (x 0 y 0 ) i=1 } {{ } R (10) k 1 L = 2 k (x k + y k ) + 2 i (x i + y i ) (11) und R = 2 k+1 u k + 2 k (x k y k u k 1 ) + k 1 2 i (x i y i u i 1 ) + (x 0 y 0 ) (12) i=1 = 2 k+1 u k + 2 k (x k y k ) 2 k+1 (x k y k )u k 1 + 2 k u k 1 + k 1 2 i (x i y i u i 1 ) + (x 0 y 0 ) (13) i=1 Der letzte Schritt (13) wird über die folgende Hilfsformel bewiesen: 2 k (x k y k ) 2 k+1 (x k y k )u k 1 + 2 k u k 1 = 2 k (x k y k u k 1 ) (14) Beweis der Hilfsformel (14): Falls u k 1 = 0: 2 k (x k y k ) 0 + 0 = 2 k (x k y k 0) (15) Falls u k 1 = 1: x k y k 2 k (x k y k ) 2 k+1 (x k y k ) + 2 k 2 k (x k y k 1) 0 0 2 k 2 k 0 1 2 k 2 k+1 + 2 k = 0 0 1 0 (wie Fall 0/1 aus Symmetriegründen) 1 1 2 k 2 k (16) 5

Damit ist die Hilfsformel (14) bewiesen. Nach Anwendung der Induktionsannahme (9) auf (11) und (13) bleibt zu zeigen: 2 k (x k + y k )! = 2 k+1 u k + 2 k (x k y k ) 2 k+1 (x k y k )u k 1 (17) x k + y k = 2u k + (x k y k ) 2(x k y k )u k 1 Division durch 2 k (18) = 2(x k y k + (x k y k )u k 1 ) + (x k y k ) 2(x k y k )u k 1 (19) = 2x k y k + (x k y k ) (20) Die letzte Gleichung (20) ist gleichbedeutend mit (4) und bereits oben bewiesen worden. 2 Darstellung negativer ganzer Zahlen und Subtraktion 2.1 Darstellung negativer ganzer Zahlen Eine einfache, intuitive Methode zur Darstellung negativer ganzer Zahlen ist, ein Bit des Maschinenwortes bzw. Bitvektors für das Vorzeichen zu reservieren. Ist dieses Bit auf 1, so ist die Zahl negativ. Der Rest der Bits wird wie gewohnt als der Betrag n 1 2i x i der Zahl interpretiert. 1... n n-1 0 Diese Darstellung wurde früher zum Teil tatsächlich verwendet, aber sie hat zwei wesentliche Nachteile: 1. Für die Null gibt es zwei verschiedene Repräsentationen: 0 0... 0 n n-1 0 und 1 0... 0 n n-1 0 Dies erfordert zusätzliche Umsicht und Maßnahmen bei der Überprüfung, ob zwei Zahlen gleich sind. 2. Der Rechner benötigt eine separate Implementierung der Subtraktion. Eine bessere Darstellung ist die mit Hilfe des Zweierkomplements, welche wir im folgenden einführen werden. Die Darstellung der Null ist dabei eindeutig, und zusätzlich läßt sich die Subtraktion auf die Addition zurückführen, so daß dafür keine zusätzliche Hardware mehr benötigt wird. Eine nicht-negative ganze Zahl kann eindeutig in der in Abschnitt 1.1 gezeigten Weise in einen vorzeichenlosen Bitvektor umgewandelt werden. Wir behandeln nun auch den Fall der negativen ganzen Zahlen, d.h. z Z: Definition 7 (Repräsentationsfunktion r) (0 x n 1... x 0 ) mit n 1 2 i x i = z falls 0 z < 2 n r : Z B n+1, r(z) = n (}{{} 1 w n 1... w 0 ) mit 2 i w i = z + 2 n+1 falls 2 n z < 0 =w n 6

mit Definitionsbereich dom r = {z Z 2 n z < 2 n } Außerdem sei, falls 2 n z < 0, w = df n 2 i w i = z + 2 n+1 Man sieht sofort, daß 2 n w < 2 n+1 gilt. Damit ist w n = 1, d.h. das höchstwertige Bit ist für negative Zahlen immer gleich 1. 2.2 Abstrakte Interpretation Definition 8 (Einerkomplement K 1 ) K 1 : B n+1 B n+1, K 1 (x n... x 0 ) = ((x n 1)... (x 0 1)) Definition 9 (Projektion Π n+1 von B n+2 nach B n+1 ) Π n+1 : B n+2 B n+1, Π n+1 (x n+1 x n... x 0 ) = (x n... x 0 ) = ((1 x n )... (1 x 0 )) Die Projektion schneidet einfach das am weitesten links stehende Bit ab. Definition 10 (Zweierkomplement K 2 ) K 2 : B n+1 B n+1, { ( Π n+1 K1 (x n... x 0 ) + (0 0... 0 1) ) für (x n... x 0 ) (0... 0) K 2 (x n... x 0 ) = (0 0... 0) für (x n... x 0 ) = (0... 0) Dabei ist + die aus Definition 6 auf Seite 3 bekannte Addition + n+1 vorzeichenloser Bitvektoren, jetzt aber von B n+1 B n+1 nach B n+2 statt von B n B n nach B n+1. Deshalb schneiden wir mit Hilfe der Projektion Π n+1 die (n + 2)-te Stelle ab, um einen Ergebnisvektor aus B n+1 zu bekommen. Dieses dürfen wir tun, weil bei obiger Verwendung gilt, daß diese Ziffer stets gleich 0 ist. 7

Beispiel: Wir arbeiten im B 3+1. K 1 (0 0 0 0) = (1 1 1 1) K 2 (0 0 0 0) = (0 0 0 0) K 1 (0 0 0 1) = (1 1 1 0) K 2 (0 0 0 1) = (1 1 1 1) K 1 (0 1 1 1) = (1 0 0 0) K 2 (0 1 1 1) = (1 0 0 1) K 1 (1 1 1 1) = (0 0 0 0) K 2 (1 1 1 1) = (0 0 0 1) K 1 (1 0 0 0) = (0 1 1 1) K 2 (1 0 0 0) = (1 0 0 0) K 1 (1 0 0 1) = (0 1 1 0) K 2 (1 0 0 1) = (0 1 1 1) Definition 11 (Abstraktionsfunktion ρ) ρ(x n... x 0 ) = n 1 2 i x i für x n = 0 ρ : B n+1 Z, ρ(x n... x 0 ) = ρ(k 2 (x n... x 0 )) für x n = 1 Die Abstraktionsfunktion ρ wird auch Retrieve-Funktion genannt. N 0, Dabei ist ρ jetzt die aus Definition 3 auf Seite 2 bekannte Abstraktionsfunktion ρ n+1 : B n+1 (x n... x 0 ) n 2i x i für vorzeichenlose Zahlen, allerdings auf B n+1 statt auf B n. Beispiel: Wir arbeiten im B 3+1. ρ(0 0 0 0) = 0 (21) 3 ρ(1 0 0 0) = ρ(k 2 (1 0 0 0)) = ρ(1 0 0 0) = 2 i x i = (1 2 3 ) = 8 (22) ρ(1 0 0 1) = ρ(0 1 1 1) = 7 (23)... ρ(1 1 1 1) = ρ(0 0 0 1) = 1 (24) ρ(0 1 1 1) = 7 (25) Man sieht an den Beispielen (22) und (25), daß bei der Zweierkomplementdarstellung der Betrag der kleinsten darstellbaren Zahl ungleich dem Betrag der größten darstellbaren Zahl ist. 2.3 Addition mit Vorzeichen Definition 12 (Addition + auf B n+1 ) + : B n+1 B n+1 B n+1 8

mit Definitionsbereich { dom + = (x, y) B n+1 B n+1 ( xn y n = 1 ) und ( x n = 0 y n = 0 ρ n+2 ((x n... x 0 ) + (y n... y 0 )) < 2 n) ( x n = 1 y n = 1 ρ((x n 1... x 0 ) + (y n 1... y 0 )) 2 n)} (x n... x 0 ) + (y n... y 0 ) = df Π n+1 ((x n... x 0 ) + (y n... y 0 )) Dabei ist ρ n+2 die Abstraktionsfunktion ρ n+2 : B n+2 N 0, (x n+1... x 0 ) n+1 2i x i für vorzeichenlose Zahlen, jetzt allerdings auf B n+2 statt auf B n+1. Und bezeichnet eine partielle Abbildung. 2.4 Eigenschaften Lemma 1 ρ(x n... x 0 ) = (2 n+1 ρ(x n... x 0 )) für x }{{} n = 1 = n 2i x i Beweis: Sei x n = 1. ρ(x n... x 0 ) = ρ(k 2 (x n... x 0 )) (26) ( ( = ρ Π n+1 K1 (x n... x 0 ) + (0... 0 1) )) (27) ( ( = ρ Π n+1 ((xn 1)... (x 0 1)) + (0... 0 1) )) (28) [ ( ) ] = ρ (x n 1)... (x 0 1) + ρ(0... 0 1) [x n 1 = 0, Satz 1] [ n ] = 2 i (x i 1) + 1 [ n ] = 2 i (1 x i ) + 1 [ n = 2 i ] n 2 i x i + 1 [( n ) = 2 i + 1 ] n 2 i x i (29) (30) (31) (32) (33) = [ 2 n+1 ρ(x n... x 0 ) ] (34) 9

Satz 2 Die Abstraktionsfunktion ρ ist invers zur Repräsentationsfunktion r, d.h. ρ( r(z)) = z für z dom r Beweis: Fall z {0,..., 2 n 1} : Dann gilt mit n 1 2i x i = z und damit r(z) = (0 x n 1... x 0 ) (35) ρ( r(z)) = ρ(0 x n 1... x 0 ) (36) = ρ(0 x n 1... x 0 ) (37) n 1 = 2 i x i = z (38) (39) Fall z { 2 n,..., 1} : Dann gilt mit n 2i w i = z + 2 n+1 und w n = 1 und damit r(z) = (1 w n 1... x 0 ) (40) ρ( r(z)) = ρ(1 w n 1... w 0 ) (41) = ρ(1 w n 1... w 0 ) 2 n+1 [Lemma 1] (42) ( n ) = 2 i w i 2 n+1 (43) = (z + 2 n+1 ) 2 n+1 (44) = z Satz 3 Das folgende Diagramm kommutiert: (45) Z Z ρ ρ + Z ρ B n+1 B n+1 + B n+1 10

d.h. n N. ( (x n... x 0 ), (y n... y 0 ) ) dom +. ρ(x n... x 0 ) + ρ(y n... y 0 ) = ρ((x n... x 0 ) + (y n... y 0 )) Beweis: Sei x = (x n... x 0 ) und y = (y n... y 0 ). Fall x n = y n = 0 und ρ n+2 ((x n... x 0 ) + (y n... y 0 )) < 2 n : Dann gilt ρ(x n... x 0 ) + ρ(y n... y 0 ) = ρ(x n... x 0 ) + ρ(y n... y 0 ) (46) = ρ n+2 ((x n... x 0 ) + ρ(y n... y 0 )) [Satz 1] (47) = ρ((x n... x 0 ) + ρ(y n... y 0 )) [Def. +, x n = y n = 0] (48) = ρ((x n... x 0 ) + ρ(y n... y 0 )) (49) Der letzte Schritt gilt, da x n = y n = 0 und da wegen ρ n+2 ((x n... x 0 ) + (y n... y 0 )) < 2 n auch kein Übertrag in das n-te Bit entsteht. Fall x n = 1, y n = 0 : Dann gilt ρ(x) + ρ(y) = 2 n+1 + ρ(x) + ρ(y) (50) = 2 n+1 + ρ n+2 (x + y) (51) Da x n = 1, y n = 0 und damit u n = x n y n + (x n y n )u n 1 = u n 1, gilt x + y = (u n (x n y n u n 1 )... ) (52) = (u n 1 (1 u n 1 ) (x n 1 y n 1 u n 2 )... ) (53) Fall (a) u n 1 = 0 : Dann ist x + y = ( 0 }{{} n+1 1 (x n 1 y n 1 u n 2 )... (x 0 y 0 )) (54) und damit Π n+1 (x + y) = (1 (x n 1 y n 1 u n 2 )... (x 0 y 0 )) (55) = x + y (56) 11

Für Fall (a) gilt also: ρ(x + y) = ρ(π n+1 (x + y)) (57) = 2 n+1 + ρ(π n+1 (x + y)) [Lemma 1] (58) = 2 n+1 + ρ(x) + ρ(y) [Satz 1, u n 1 = 0] (59) = 2 n+1 + ρ(x) + ρ(y) (60) = ρ(x) + ρ(y) (61) Fall (b) u n 1 = 1 : Dann ist x + y = ( 1 }{{} n+1 0 (x n 1 y n 1 u n 2 )... (x 0 y 0 )) (62) Also folgt und damit x + y = (0 (x n 1 y n 1 u n 2 )... (x 0 y 0 )) (63) ρ(x + y) = ρ(x + y) (64) Fall x n = 0, y n = 1 : = ρ n+2 (x + y) 2 n+1 [Korrektur des hinzugefügten 1-Bits n + 1] (65) = ρ(x) + ρ(y) 2 n+1 [Satz 1] (66) = ρ(x) + ρ(y) 2 n+1 (67) = ρ(x) + ρ(y) [Lemma 1] (68) Aus Symmetriegründen wie x n = 1, y n = 0. Fall x n = 1, y n = 1 : Dann ist x + y = (u n (x n y n u n 1 )... (x 0 y 0 )) (69) = ((x n y }{{} n +(x n y n )u }{{} n 1 ) (x n y n u }{{} n 1 )... (x 0 y 0 )) (70) =1 =0 =0 }{{}}{{} =1 =u n 1 = ( 1 }{{} n+1 u n 1 }{{} n (x n 1 y n 1 u n 2 )... (x 0 y 0 )) (71) = (1 1 (x n 1 y n 1 u n 2 )... (x 0 y 0 )) [wegen Def. dom +, 3. Fall] (72) 12

Also folgt x + y = (1 (x n 1 y n 1 u n 2 )... (x 0 y 0 )) (73) und damit ρ(x + y) = 2 n+1 + ρ(x + y) [Lemma 1] (74) = 2 n+1 + ρ n+2 (x + y) 2 n+1 [Korrektur des hinzugefügten 1-Bits n + 1] (75) = 2 n+1 + ρ(x) + ρ(y) 2 n+1 [Satz 1] (76) = ρ(x) + ρ(y) [Lemma 1] (77) 13