Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » einerkomplement vornullen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 2 Beiträge
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
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.