einerkomplement vornullen

Neue Frage »

Auf diesen Beitrag antworten »
Sopmuc einerkomplement vornullen

Meine Frage:
Hallo,
ich habe die Vorlesung Rechnerarchitektur. Und ich habe noch einige Probleme mit Binärzahlen..


Meine Ideen:
Bei der Einerkomplementdarstellung:
die Zahl 5 ist Binär ja 101 kann man dann einfach die 0 vorne daran hängen? (Für positiv) das braucht man ja zum invertieren damit ergibt sich 1010? ich frage mich nur, ob so viel Platz noch da ist zum Speichern?
eig steht in meinem Skript, dass die Additon der Einerkomplementdarstellung vorzeichenlos erfolgt.
 
Auf diesen Beitrag antworten »
as_string

Das kommt auf Deine Wortbreite an: Du könntest z. B. immer 8 Bit betrachten, oder aber ganze Register mit Registerbreite von 32 Bit oder auch 64 Bit.
Dabei hast Du immer eben diese feste Anzahl an Bit, die alle 0 oder 1 sein können. Wenn Du damit eine positive Zahl darstellst, dann werden natürlich die führenden Bit entsprechend bis mit Nullen aufgefüllt, bis das gesamte Wort komplett gefüllt ist.
Damit kannst Du dann auch immer das höchste Bit innerhalb eines solchen Worts als Vorzeichen-Bit verstehen. Solange das 0 ist, ist es eine positive Zahl, wenn es 1 ist, eine negative.

Ich kann Dir allerdings nicht sagen, von welcher Wortbreite Ihr ausgehen sollte. Üblich sind 4Bit für solche Übungen, oft aber auch 8Bit (also ein Byte) oder eben Registerbreiten von 16, 32 oder 64 Bit. Man kann aber auch bei SSE bzw AVX inzwischen bis zu 512 Bit breite Register haben und ich denke, es gibt wahrscheinlich Maschinenbefehle, die auf diesen Registern direkt das 1-Komplement bilden können.
Das ist übrigens auch ein Problem, wenn man die Größe erweitert werden muss. Z. B. kann ich in C ja eine Zahl einer char-Variablen zuweisen. Danach kann ich die Variable einer anderen zuweisen, die als int deklariert ist. Beides sind standardmäßig vorzeichenbehaftete Datentypen und int hat deutlich mehr Bit, als char. Der Compiler muss in einem solchen Fall dafür sorgen, dass die bei der Umwandlung hinzukommenden Bit entweder mit 0 aufgefüllt werden, wenn das bisher führende eine 0 war, aber mit 1, wenn das bisher führende auch eine 1 war (negative Zahl).
Wenn die Variablen aber vorzeichenlos definiert waren, muss immer nur mit Nullen aufgefüllt werden.

Man verwendet für Zahlendarstellung allerdings normalerweise eher das 2-Komplement. Das ändert aber an dem hier beschriebenen nichts.

Gruß
Marco
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »