Vorzeichen Zweierkomplement < Sonstiges < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 18:46 Sa 15.11.2008 | Autor: | Dan86 |
Aufgabe | Gegeben ist eine Dualzahl mit n Bits im Zweierkomplement.
Der kleinste Zahlwert, der mit diesen n Bits dargestellt werden kann ist [mm] -2^{n-1} [/mm] und der größte Zahlwert ist [mm] 2^{n-1}-1. [/mm] Zeigen Sie:
a) ist das führende bit eine 0 handelt es sich immer um eine positive Zahl.
b) ist das führende bit eine 1 handelt es sich immer um eine negative Zahl.
|
Hallo Leute,
Ich stecke grade an dieser Aufgabe fest und weiß leider gar nicht, was von mir verlangt wird.
Wir haben bisher nur einige Dezimalzahlen ins Zweierkomplement umgewandelt. Kann mir vielleicht jemand einen Ansatz geben, was genau zu zeigen ist und wovon man ausgehen kann?
Grüße
Daniel
Diese Frage habe ich in keinem anderem Forum gestellt.
|
|
|
|
Mathematisch gesehen ist die Aufgabe Schwachsinn, weil die Konvention (Übereinkunft) "Zweierkomplement" vorausgesetzt wird und zugleich bewiesen werden soll. Ohne diese Voraussetzung könntest Du höchstens zeigen, dass es ein bestimmtes Bit gibt, das eindeutig der Vorzeichenbestimmung zugeordnet ist. Auch dann könnte noch 1 für positiv und 0 für negativ stehen, oder umgekehrt, und der Sonderfall "0" müsste einzeln geklärt werden.
Die Konvention steht z.B. hier.
Damit kannst Du die Aufgabe schon lösen.
Den Sonderfall [mm] \pm0 [/mm] musst Du trotzdem einzeln bedenken.
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 10:10 So 16.11.2008 | Autor: | Dan86 |
Hallo,
Ja, bei Wikipedia habe ich schon geschaut, weil wir auch einige Zahlen umwandeln mussten. Ich weiß aber absolut nicht, was ich als Annahme verwenden kann/soll um diesen Beweis zu führen.
Bei mir im Skript steht das, was wir beweisen müssen auch einfach nur so in einem Satz als Regel: "An der ersten 0 bzw. 1 erkennt man, ob es sich um eine positive oder negative Zahl handelt."
Kann mir vielleicht jemand helfen, die Annahme aufzustellen?
Ich komme bei dieser Aufgabe derzeit einfach nicht weiter.
Grüße
Daniel
|
|
|
|
|
Hallo!
Ich habe mich gestern rein zufällig auch mit dem Problem rumgeschlagen, aus ner Bitfolge eine vorzeichenbehaftete Zahl zu machen.
Letztendlich will man doch einen symmetrischen Zahlenbereich um 0. Demnach teilt man seinen zur Verfügung stehenden Zahlenbereich in 2 Hälften auf, und bildet den oberen Bereich auf die negativen Zahlen ab.
Weil es nunmal Binärzahlen sind, kann man am höchten Bit der Zahl erkennen, ob sie zum unteren oder oberen Bereich gehört:
0b00 -> 0
0b01 -> 1
--
0b10 -> -1
0b11-> -2
Aber man könnte das Vorzeichen auch im niedrigsten Bit codieren:
0b00 -> 0
0b01 -> 1
--
0b10 -> -1
0b11-> 2
Die letzte Methode ist nur sehr unhandlich, wenn man damit rechnen will: 0b01+0b01=0b11 ???
Deshalb nimmt man die erste Methode, weil sie praktischer ist. Aber das ist alles nur Konvention, kein mathematischer Beweis.
|
|
|
|
|
Du darfst als Annahme die getroffene Konvention verwenden.
Die besagt, dass eine positive Zahl wie folgt mit (-1) multipliziert wird:
1) Alle Bits werden invertiert
2) Zum Ergebnis wird 1 addiert
Das Prinzip wird nur auf Binärzahlen bis max. n-1 Bits angewandt, wenn insgesamt n Bits für die Darstellung zur Verfügung stehen.
Wende das mal auf kleine Beispiele an, 8-Bit-Zahlen z.B., die also eigentlich nur 7 Bits haben - schon daraus ist zu erkennen, dass eine führende Null immer eine positive Zahl (einschließlich der Null) bedeutet.
Aus der führenden Null wird durch Invertieren eine 1. Wie müsste die Zahl beschaffen sein, damit (per fortlaufendem Übertrag) durch Addition einer 1 (also "hinten") die führende 1 zu 0 wird?
Zusatzfrage: wie wandelt man eigentlich eine negative Zahl in der Zweierkomplementdarstellung wieder in eine positive um?
Mit diesen Hilfestellungen solltest Du's schaffen.
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 20:54 Mi 19.11.2008 | Autor: | Dan86 |
Hallo,
Vielen Dank erstmal für die Hilfestellungen. Irgendwie weiß ich aber nicht genau, wie ich da Formal rangehen kann.
Die ganzen Beispiele die man mal ausprobieren soll, funktioniert auch.
Was die beiden Fragen angeht:
1. "Wie müsste die Zahl beschaffen sein, damit (per fortlaufendem Übertrag) durch Addition einer 1 (also "hinten") die führende 1 zu 0 wird?"
In diesem Fall müsste alle Zahlen 1 sein, damit die führende 1 zu 0 wird, das gibt aber einen Überlauf. Bei n = 4 bit z.B. 1111 + 0001.
Allgemein ändern sich die Vorzeichen eigentlich nur, wenn man einen Überlauf rausbekommt.
2. Zusatzfrage: wie wandelt man eigentlich eine negative Zahl in der Zweierkomplementdarstellung wieder in eine positive um?
Es ist genau das gleiche wie bei positiven Zahlen. Zuerst die 0 und 1 invertieren und dann +1 dazurechnen.
Ich hoffe mir kann jemand ein paar Denkanstöße geben.
Grüße
Daniel
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 21:21 Sa 22.11.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|