• Keine Ergebnisse gefunden

Darstellung ganzer Zahlen mit dem Einerkomplement

N/A
N/A
Protected

Academic year: 2021

Aktie "Darstellung ganzer Zahlen mit dem Einerkomplement"

Copied!
7
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Darstellung ganzer Zahlen mit dem Einerkomplement

Jan Bredereke

Universit¨ at Bremen, Fachbereich Informatik Vers. 3.0

Dieser Text erg¨ anzt das Skript

” Darstellung ganzer Zahlen als Bitvektoren“ von Jan Peleska und Jan Bredereke, das zur Darstellung das Zweierkomplement benutzt.

Der letzte Teil dieses Textes wird nach erfolgreichem Vorrechnen von Blatt 1 erg¨ anzt werden.

Definition 1 (Repr¨ asentationsfunktion b r)

b r : Z → B n+1 , b r(z) =

 

 

(0 x n−1 . . . x 0 ) mit

n−1

P

i=0

2 i x i = z falls 0 ≤ z < 2 n ( 1

|{z}

=w

n

w n−1 . . . w 0 ) mit

n

P

i=0

2 i w i = z + 2 n+1 − 1 falls −2 n < z < 0

mit Definitionsbereich

dom b r = {z ∈ Z | − 2 n < z < 2 n } Außerdem sei, falls −2 n < z < 0,

w = df

n

X

i=0

2 i w i = z + 2 n+1 − 1

2 Definition 2 (Abstraktionsfunktion ρ) b

ρ b : B n+1 → Z , ρ(x b n . . . x 0 ) =

 

 

ρ(x n . . . x 0 ) =

n−1

P

i=0

2 i x i f¨ ur x n = 0

−ρ(K 1 (x n . . . x 0 )) f¨ ur x n = 1

Die Abstraktionsfunktion ρ b wird auch Retrieve-Funktion genannt. 2 Definition 3 (Addition + b auf B n+1 )

+ : b B n+1 × B n+1 7→ B n+1

(2)

mit Definitionsbereich dom + = b n

(x, y) ∈ B n+1 × B n+1 x n ⊕ y n = 1

∨ x n = 0 ∧ y n = 0 ∧ ρ n+2 ((x n . . . x 0 ) + 0 (y n . . . y 0 )) < 2 n

∨ x n = 1 ∧ y n = 1 ∧ ρ((x n−1 . . . x 0 ) + 0 (y n−1 . . . y 0 )) ≥ 2 n − 1 o und

(x n . . . x 0 ) + (y b n . . . y 0 ) = df Π n+1 (z n . . . z 0 ) + 0 (0 . . . 0 z n+1 ) mit

(z n+1 z n . . . z 0 ) = df (x n . . . x 0 ) + 0 (y n . . . y 0 )

2 Die Addition in der Einerkomplementdarstellung erfolgt also zweistufig mithilfe der vorzei- chenlosen Addition: Zuerst werden die beiden Summanden vorzeichenlos addiert, die dabei links herausfallende (n + 2)-te Ziffer wird anschließend in einem zweiten Schritt an der niederwertig- sten Stelle wieder vorzeichenlos dazuaddiert. Dieser Trick erspart viele Fallunterscheidungen, die anderenfalls notwendig w¨ aren.

Beispiel:

(00100) + 0 (00010) = (000110) ; (00100) +(00010) = (00110) b 4 + 2 = 6 (1) (00010) + 0 (11011) = (011101) ; (00010) +(11011) = (11101) b 2 + (−4) = −2 (2) (00100) + 0 (11101) = (100001) ; (00100) +(11101) = (00010) b 4 + (−2) = 2 (3) (11011) + 0 (11101) = (111000) ; (11011) +(11101) = (11001) b (−4) + (−2) = −6 (4) (11110) + 0 (00001) = (011111) ; (11110) +(00001) = (11111) b (−1) + 1 = −0 (5) Die zweite Form der Null kann also wirklich entstehen.

Definition 4 (Subtraktion b – auf B n+1 ) b – : B n+1 × B n+1 7→ B n+1

mit Definitionsbereich dom b – =

(x, y) ∈ B n+1 × B n+1

(x, K 1 (y)) ∈ dom + b und

(x n . . . x 0 ) b – (y n . . . y 0 ) = df (x n . . . x 0 ) + b K 1 (y n . . . y 0 )

2

(3)

Satz 1 Das folgende Diagramm kommutiert:

Z × Z −−−→ + Z x

ρ× b ρ b

x

ρ b B n+1 × B n+1 −−−→ + b 7 B n+1

d.h.

∀n ∈ N .∀ (x n . . . x 0 ), (y n . . . y 0 )

∈ dom + b .

ρ(x b n . . . x 0 ) + ρ(y b n . . . y 0 ) = ρ((x b n . . . x 0 ) + (y b n . . . y 0 ))

2

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 ) + 0 (y n . . . y 0 )) < 2 n : (Beweis genau analog zu dem f¨ ur das Zweierkomplement.)

Dann gilt

ρ(x b n . . . x 0 ) + ρ(y b n . . . y 0 ) = ρ(x n . . . x 0 ) + ρ(y n . . . y 0 ) (6)

= ρ n+2 ((x n . . . x 0 ) + 0 ρ(y n . . . y 0 )) (7)

= ρ((x n . . . x 0 ) + b ρ(y n . . . y 0 )) [Def. +, b x n = y n = 0]

(8)

= ρ((x b n . . . x 0 ) + b ρ(y n . . . y 0 )) (9) Der letzte Schritt gilt, da x n = y n = 0 und da wegen ρ n+2 ((x n . . . x 0 ) + 0 (y n . . . y 0 )) < 2 n auch kein ¨ Ubertrag in das n-te Bit entsteht.

Fall x n = 1, y n = 0 : Dann gilt

ρ(x) + b ρ(y) = b −ρ(K 1 (x)) + ρ(y) (10)

Da x n = 1, y n = 0 und damit z n+1 = u n = x n y n + (x n ⊕ y n )u n−1 = u n−1 , gilt

z = x + 0 y = (u n (x n ⊕ y n ⊕ u n−1 ) . . . ) (11)

= (u n−1 (1 ⊕ u n−1 ) (x n−1 ⊕ y n−1 ⊕ u n−2 ) . . . ) (12)

(4)

Fall (a) u n−1 = 0 : Dann ist

z = x + 0 y = ( 0

|{z} n+1

1 (x n−1 ⊕ y n−1 ⊕ u n−2 ) . . . (x 0 ⊕ y 0 )) (13)

und damit

x + b y = Π n+1n+1 (z) + 0 (0 . . . 0 0)) (14)

= Π n+1 (x + 0 y) (15)

F¨ ur Fall (a) gilt also:

ρ(x b + b y) = ρ(Π b n+1 (x + 0 y)) (16)

= −ρ(K 1n+1 (x + 0 y))) [z n = 1] (17)

= −

n

X

i=0

2 i · (1 − (x i + y i )) (18)

=

n

X

i=0

2 i · (x i + y i − 1) (19)

= −

n

X

i=0

2 i · (1 − x i ) +

n

X

i=0

2 i · y i (20)

= −ρ(K 1 (x)) + ρ(y) (21)

= ρ(x) + b ρ(y) b [x n = 1, y n = 0] (22)

Fall (b) u n−1 = 1 : Dann ist

z = x + 0 y = ( 1

|{z} n+1

0 (x n−1 ⊕ y n−1 ⊕ u n−2 ) . . . (x 0 ⊕ y 0 )) (23) Wegen y n = 0 folgt

ρ(x) ≤ 2 n+1 − 1 ∧ ρ(y) ≤ 2 n − 1 (24)

und damit

ρ(x) + ρ(y) ≤ 2 n+1 + 2 n − 2 (25)

< 2 n+1 + 2 n − 1 (26)

= 2 n+2 − 2 n − 1 (27)

und

ρ(x + 0 y) 6= 2 n+2 − 1 − 2 n (28)

(5)

und deshalb

z = x + 0 y 6= (1 0 1 1 . . . 1) (29)

Es ist wegen z n+1 = 1

x + b y = Π n+1n+1 (z) + 0 (0 . . . 0 1)) (30)

und weil z n = 0 und weil wegen z 6= (1 0 1 1 . . . 1) kein Additions¨ ubertrag diese Stelle in x + b y ver¨ andert, folgt damit

ρ(x b + b y) = ρ(Π n+1 (Π n+1 (x + 0 y) + 0 (0 . . . 0 1))) (31)

= ρ(Π n+1 (x + 0 y)) + 1 (32)

= ρ(x + 0 y) − 2 n+1 + 1 [z n+1 = 1] (33)

= ρ(x + 0 y) −

n

X

i=0

2 i (34)

=

n

X

i=0

2 i · (x i + y i − 1) (35)

= −

n

X

i=0

2 i · (1 − x i ) +

n

X

i=0

2 i · y i (36)

= −ρ(K 1 (x)) + ρ(y) (37)

= ρ(x) + b ρ(y) b [x n = 1, y n = 0] (38)

Fall x n = 0, y n = 1 :

Aus Symmetriegr¨ unden wie x n = 1, y n = 0.

Fall x n = 1, y n = 1 : Dann ist

x + 0 y = (u n (x n ⊕ y n ⊕ u n−1 ) . . . (x 0 ⊕ y 0 )) (39)

= ((x n y n

| {z }

=1

+(x n ⊕ y n

| {z }

=0

)u n−1

| {z }

=1

) (x n ⊕ y n

| {z }

=0

⊕u n−1

| {z }

=u

n−1

) . . . (x 0 ⊕ y 0 )) (40)

= ( 1

|{z} n+1

u n−1

| {z }

n

(x n−1 ⊕ y n−1 ⊕ u n−2 ) . . . (x 0 ⊕ y 0 )) (41)

und wegen Def. dom +, 3. Fall gilt b

z = x + 0 y = (1 1 (x n−1 ⊕ y n−1 ⊕ u n−2 ) . . . (x 0 ⊕ y 0 )) (42)

∨ z = x + 0 y = (1 0 1 1 . . . 1) (43)

(6)

Weiterhin ist

ρ(x) ≤ 2 n+1 − 1 ∧ ρ(y) ≤ 2 n+1 − 1 (44)

und damit

ρ(x) + ρ(y) ≤ 2 n+2 − 2 (45)

< 2 n+2 − 1 (46)

und

ρ(x + 0 y) 6= 2 n+2 − 1 (47)

und deshalb

z = x + 0 y 6= (1 1 1 1 . . . 1) (48)

und

Π n+1 (z) 6= (1 1 1 . . . 1) (49)

Es ist wegen z n+1 = 1

x + b y = Π n+1n+1 (z) + 0 (0 . . . 0 1)) (50)

Fall (a) z n = 1 :

Weil wegen Π n+1 (z) 6= (1 1 1 . . . 1) kein Additions¨ ubertrag auf die Stelle n + 1 entsteht und die Stelle n auf 1 bleibt, folgt damit

ρ(x b + b y) = −ρ(K 1n+1n+1 (x + 0 y) + 0 (0 . . . 0 1)))) (51) Die innere Projektion k¨ onnen wir wegen der ¨ außeren Projektion fortlassen:

ρ(x b + b y) = −ρ(K 1n+1n+2 ((x + 0 y) + 0 n+2 (0 0 . . . 0 1))))) (52)

(7)

Die beiden Projektionen schneiden nun je eine 1 ab, so daß ihr Weglassen kompensiert werden muß:

ρ(x b + b y) = 2 n+2 + 2 n+1

n

X

i=0

2 i · (1 − (x i + y i + v i )) mit v 0 = 1 und v i = 0 sonst (53)

= 2 n+2 + 2 n+1

n

X

i=0

2 i +

n

X

i=0

2 i x i +

n

X

i=0

2 i y i

!

+ 1 (54)

= 2 n+2 + 2 n+1 − 2 n+1 + 1 + 1 +

n

X

i=0

2 i x i +

n

X

i=0

2 i y i (55)

= −2 n+2 + 1 + 1 +

n

X

i=0

2 i x i +

n

X

i=0

2 i y i (56)

= −2 n+1 + 1 +

n

X

i=0

2 i x i

!

− 2 n+1 + 1 +

n

X

i=0

2 i y i

!

(57)

= −

n

X

i=0

2 i +

n

X

i=0

2 i x i

n

X

i=0

2 i +

n

X

i=0

2 i y i (58)

= −

n

X

i=0

2 i · (1 − x i ) −

n

X

i=0

2 i · (1 − y i ) (59)

= −ρ(K 1 (x)) − ρ(K 1 (y)) (60)

= ρ(x) + b ρ(y) b (61)

Fall (b) z n = 0 :

Wegen z = (1 0 1 1 . . . 1) entsteht hier bei der Addition von (0 . . . 0 1) auf jeden Fall ein ¨ Ubertrag ind die Stelle n, ohne allerdings anschließend die Stelle n + 1 durch einen weiteren Ubertrag zu ver¨ ¨ andern, so daß hinterher wiederum die h¨ ochsten beiden Stellen gleich 1 sind.

Damit gilt die gleiche Argumentation wie ab Gleichung (51) auch hier. 2

Referenzen

ÄHNLICHE DOKUMENTE

Folglich ist der Hinweis wichtig, dass man den ersten Nenner faktorisieren kann.. Damit kann man den andern

Für alle Aufgaben gilt: Vereinfache so weit

[r]

Ergänze die fehlenden Zahlen im Rechenprotokoll.. Lösung:

[r]

[r]

[r]

Beim zweiten Bruch haben wir den Nenner mit 4 erweitert, also machen wir dies auch im