Einerkomplement von 11110011?
In meinen Lösungen steht -12, aber ich weiß nicht wieso.
Ich habe das so verstanden, dass man erst die Zahl in Dezimal umwandelt, und die binäre Zahl dann umkehrt. Dann hat man die negative Zahl.
Also
11110011 = 131
00001100 = -131
In den Lösungen steht aber -12.
Ich bin stark verwirrt.
2 Antworten
das 1er Komplement wird gebildet, indem man jedes Bit einfach umkehrt...
also in 8bit bit-weiser Arithmetik:
1111'0011 <-- Ausgangswert (binär)
0000'1100 <-- zugehöriges 1er-Komplement (binär)
und das ist eben 0C (hexadezimal) oder eben auch 12 (dezimal)...
wie ist denn die genaue Aufgabe?
mit Vorzeichen hat das erstmal nichts zu tun... das geht eigentlich erst mit dem 2er-Komplement los... dann wäre 0000'1100 aber üblicher Weise (+12)... und (-12) wäre (1111'0011+1) also 1111'0100...
das 1er-Komplement von 1111'0011 bei 8bit Wortbreite ist 0000'1100... und das ist 12 im Dezimalsystem...
die Aufgabe ist nicht sauber formuliert finde ich...
man könnte denken, dass es bedeuten soll, dass du 1111'0011 als Einer-Komplement bei einer Wortbreite von 8 Bit verstehen sollst... dann wäre es -12
Minus weil das MSB gesetzt ist... und der Betrag ist dann das bit-weise Inverse der restlichen Bits... also 000'1100(binär)=12(dez)
11110011 = 131
Die erste 1 entspricht im Einser-Komplement dem Vorzeichen. Es handelt sich hierbei also um eine negative Zahl. (Direkt in binär umwandeln funktioniert aber nur bei positiven Zahlen, daher das falsche Ergebnis 131)
Das heißt indem du die gegebene Zahl umkehrst, erhälts du die positive Zahl. Wenn du die umgekehrte Zahl in binär umrechnet erhälts du 12.
Daher muss man vorher die Repräsentation von -12 gehabt haben.
Es gibt auch andere Verfahren die Zahl auszurechnen, nachzulesen auf Wikipedia
Zusammengefasst:
- Direkt umwandeln funktioniert nur bei positiven Zahlen
- Sonst muss muss man erst invertieren und dann in die Dezimalzahl umwandeln
- Dann weiß man, welche negative Zahl anfangs dargestellt wurde
Wandeln Sie folgende Zahlen ins Dezimalsystem um
Einerkomplement:
11110011
Das ist die Aufgabenstellung.
Ich hätte halt erstmal die Dezimalzahl davon gebildet und dann erst umgekehrt. Das wäre ja dann nicht 12.