Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Sonstige Fragen (http://www.informatikerboard.de/board/board.php?boardid=25)
--- Negieren von 8 Bit Zweierkomplementzahlen (http://www.informatikerboard.de/board/thread.php?threadid=2526)
Geschrieben von info3000 am 01.11.2015 um 09:18:
Negieren von 8 Bit Zweierkomplementzahlen
Meine Frage:
Hallo, meine Aufgabe lautet:
Negieren Sie folgende 8 Bit Zweierkomplementzahlen
1) 00000000
2) 00111001
.....
Ich habe das Gefühl, es ist eine einfache Aufgabe. Allerdings weiss ich nicht, wie ich vorgehen muss.
Meine Ideen:
-
Geschrieben von eulerscheZahl am 01.11.2015 um 17:08:
Ich interpretiere die Aufgabenstellung als "Bilden Sie das Zweierkomplement".
Alle Bit invertieren, dann 1 draufaddieren
1) 00000000
invertiert: 11111111
+1: 00000000
Die Zahl ist 0. Ändert man das Vorzeichen, hat man -0, was aber das selbe wie +0 ist.
Geschrieben von info3000 am 01.11.2015 um 17:13:
wenn ich bei 11111111 eins dazu addiere erhalte ich:
100000000
Muss ich hierbei die 1 vorne weglassen? wieso ?
Geschrieben von eulerscheZahl am 01.11.2015 um 17:15:
Da kommt der Überlauf ins Spiel. Du hast nur 8 Bit.
Geschrieben von info3000 am 01.11.2015 um 18:07:
danke.
Ich habs jetzt mit dem zweiten gemacht:
00111001
negiert: 11000110
1 addiert: 11000111
in Dezimal umgewandelt: 199
ist das richtig?
Geschrieben von eulerscheZahl am 01.11.2015 um 18:09:
Dezimal ist das die Darstellung für -57. Unsigned wäre es 199, da hast du Recht.
Geschrieben von info3000 am 01.11.2015 um 18:56:
das habe ich jetzt leider nicht verstanden...
Wie komme ich auf -57?
Ich muss doch letztlich mein negiertes 8 bit Komplement in Dezimalzahlen umwandeln.
Und das ist doch eigentlich 199 oder?
Geschrieben von eulerscheZahl am 01.11.2015 um 18:59:
Wenn die Zahl in Komplementdarstellung gespeichert wird und das erste Bit eine 1 ist, ist die Zahl negativ.
Um den Betrag zu erhalten, musst du den Betrag des Komplements berechnen:
00111001 = +57
11000111 = -57
Geschrieben von info3000 am 01.11.2015 um 19:30:
ok ich habe jetzt mal eins selber gemacht:
10101011
negiert:
01010100
1 addiert:
01010101
Beträge der Komplemente:
10101011 = -85
01010101 = 85
Bin ich dann durch? Und ist diese Schreibweise ok so?
Geschrieben von eulerscheZahl am 01.11.2015 um 19:31:
Passt alles.
Geschrieben von info3000 am 01.11.2015 um 19:38:
super danke dir.
In der nächsten Aufgabe muss ich Zweierkomplementzahlen auf 8 Bit erweitern bzw. reduzieren. Ich bin folgendermaßen vorgegangen:
die Zahl 1000
auf 8 Bit erweitern:
1000+1 = 10000
10000+1 = 100000
100000+1 = 1000000
1000000+1 = 10000000
geht das so?
Geschrieben von info3000 am 01.11.2015 um 19:40:
ou ich meinte ich muss dementsprechend immer das addieren was ich als ergebnis habe also:
1000+1000 = 10000
10000+10000 = 100000
100000+100000 = 1000000
1000000+1000000 = 10000000
Geschrieben von eulerscheZahl am 01.11.2015 um 19:44:
Was ist der Wortlaut der Aufgabe?
1000 könnte entweder 8 sein (als 00001000 für eine 8Bit Zahl) oder -8 (wenn die Zahl mit nur 4 Bit gespeichert wird).
Zweiteres wäre mit 8 Bit dann 11111000 = -8
Geschrieben von info3000 am 01.11.2015 um 19:51:
also die aufgabe lautet wort wörtlich:
Erweitern bzw. reduzieren Sie folgende Zweierkomplementzahlen auf 8 Bit
Geschrieben von eulerscheZahl am 01.11.2015 um 19:54:
Ich würde zu 00001000 tendieren, bin mir aber auch nicht sicher, wie das gemeint ist.
Forensoftware: Burning Board, entwickelt von WoltLab GmbH