binäre Addition < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Hallo,
ich soll die Zahlen A = -30 und B = 120 binär darstellen. Dafür soll ich die Vorzeichen-Betragsform ( 1 Bit Vorzeichen, 7 Bit Betrag) benutzen.
Für A und B habe ich:
A = 1:0011110
B = 0:1111000
und jetzt soll ich den folgenden Ausdruck binär addieren:
C = B + A
+ 1:0011110
0:1111000
1:10010110
Habe ich die zwei Werte richtig addiert?
Vielen Dank im Voraus.
LG Bubbles
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:03 Do 24.10.2013 | Autor: | felixf |
Moin!
> ich soll die Zahlen A = -30 und B = 120 binär darstellen.
> Dafür soll ich die Vorzeichen-Betragsform ( 1 Bit
> Vorzeichen, 7 Bit Betrag) benutzen.
>
> Für A und B habe ich:
>
> A = 1:0011110
>
> B = 0:1111000
> und jetzt soll ich den folgenden Ausdruck binär addieren:
>
> C = B + A
>
> + 1:0011110
> 0:1111000
> 1:10010110
>
> Habe ich die zwei Werte richtig addiert?
Nein. Du hast die Darstellung von $-(30 + 120)$ berechnet. Da die Zahlen verschiedene Vorzeichen haben, musst du die Zahl vom groesseren Betrag bestimmen und den Betrag der anderen davon abziehen, und dann das Vorzeichen passend bestimmen (je nachdem welcher Operand groesser war).
LG Felix
|
|
|
|
|
Danke für deine Hilfe :)
Ich hab jetzt folgendes raus:
- 0:1111000
1:0011110
0:1011010
Dann habe ich noch zwei weitere Fragen, und zwar:
Wenn ich jetzt C = B - A mit Hilfe der Vorzeichen-Betragsform berechnen würde, könnte ich das Vorzeichen einfach vernachlässigen und einfach beide Werte addieren, da -(-30) = +30 ist, oder gibt es da auch eine Regel die ich beachten muss?
Und kann ich auch positive Zahlen als 2er-Komplement darstellen?
Vielen Dank im Voraus.
LG Bubbles
|
|
|
|
|
Hallo!
Nun ist es richtig (Das Ergebnis ist dezimal 90, wenn du das in Binär umwandelst, kannst du das ja vergleichen)
Zum Thema 2er-Komplement:
Natürlich! Und das sieht genauso aus, wie bei deiner Konvention auch, das höchste Bit gibt das Vorzeichen an. Der Unterschied ist nur, daß man den Wertebereich 0...255 halbiert, und den oberen teil 128...255 (da ist das höchste Bit =1) von unten wieder dran klebt. Das, was vorher 255 (11111111) war, ist danach -1, und 128 (10000000) ist jetzt -128.
Sowohl im 2er-Komplement als auch in deinem System unterscheiden sich die Darstellung positiver Werte einer vorzeichenbehafteten Zahl nich von der einer rein positiven Zahl. Einzig das höchste Bit steht nicht mehr wie gewohnt zur Verfügung.
|
|
|
|
|
Wäre dann das 2er Komplement für -20:
[mm] -20\overbrace{\Rightarrow}^{Binaerzahl}010100\overbrace{\Rightarrow}^{invertieren}101011\overbrace{\Rightarrow}^{+1}101100
[/mm]
und das 2er Komplement nur für die 20 ist dann die Binärzahl: 010100
oder?
LG Bubbles
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 08:37 Sa 26.10.2013 | Autor: | Infinit |
Halo Bubbles,
genau so ist es. An der Darstellung einer positiven Zahl ändert sich nichts, bei der Darstellung einer negativen Zahl schreibt man sich die dazugehörige positive Zahl auf und beginnt von rechts "zu arbeiten". Nullen bleiben Nullen und die erste auftauchende 1 lässt man auch so, wie sie ist. Alle weiteren Stellen nach links hin werden invertiert.
Viele Grüße,
Infinit
|
|
|
|
|
Danke:)
Das 2er-Komplement habe ich jetzt verstanden:)
Dann habe ich nur noch eine Frage, und zwar wie berechne ich den Ausdruck
C = B - A mit Hilfe der Vorzeichen-Betragsform? Kann ich das Vorzeichen einfach vernachlässigen und beide Werte addieren, da -(-30) = +30 ist, oder gibt es da auch eine Regel die ich beachten muss?
LG Bubbles
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 12:50 Sa 26.10.2013 | Autor: | Infinit |
Hallo,
ja, das geht. Bei der Vorzeichen-Betrags-Form setzt Du ja nur das bit ganz links auf eine "1", wenn das Ergebnis negativ ist. Bei Deinen Werten kann dies aber nicht passieren.
Viele Grüße,
Infinit
|
|
|
|