Wie ermittelt man eine Zweierkomplementen-Zahl?
Wenn man z. B. - 6 in binär haben möchte, wie ermittle ich die zahl? Für positiv 6 bleibt es ja wie gewohnt also 0110 (4bit Darstellung)
Mir ist auch klar, das man einfach alle Stellen der 0110 umdrehen kann und dann 1 addieren kann. Aber wenn man direkt minus 6 ermitteln möchte, wie macht man das?
Was ich eigentlich verstehen möchte ist, wieso funktioniert das Verfahren mit dem invertieren.
2 Antworten
es ergibt sich wohl einfach so dass die Zahl so zu bilden ist.
Ich würde mir erst klar machen dass (invertieren+1) das selbe bewirkt wie die vorgehensweise unten (alles bis einshcließlichh zur ersten 1 gleich lassen und alles links davon invertieren)
sagen wir du hast +26 und -26 in 2er komplementär (guck dir im link unten mal direkt den abschnitt untendrunter an, die graphik mit 26 und -26).
dann muss -26 in 2er komplement so beschaffen sein dass sie durch addition mit +26 0 ergibt (weil mathe)
im beispiel ist also die frage:
00011010
+ was ergibt
=00000000
ergo, hier kommt die schriftliche addition aus der grundschule ins spiel.
um von 0 auf 0 zu kommen, braucht man 0.
von 1 auf 0 brauchen wir ne 1, wobei wir einen überlauf von 1 haben.
um von 0+1(überlauf) auf 0 zu kommen brauchen wir 1, überlauf 1.
um von 1+1=0 (was schon überlauf bringt) auf 0 zu kommen, rbauchen wir 0
0+1 auf 0 brauchen wir 1, überlauf 1.
0+1 auf 0 1, überlauf 1.
0+1 auf 0 1, überlauf 1.
nun sind wir an der grenze der bits angekommen, die überlauf 1 verschwindet im nirvana.
was du bei dem ganzen bemerken solltest:
bis zur einschließlich ersten 1(von rechts) ist alles gleich.
gerade durch die erste 1 von rechts brauchen wir aber eine 1, also 1+1 um 0 zu erreichen.
da kommt der überlauf her.
und der zieht sich durch die ganzen ziffern nach links fort, invertiert die jeweilige ziffer und wandert eins nach links weiter.
insofern ist es schlicht mathematisch nötig dass bis zur ersten 1 alles gleich ist und danach invertiert :-)
und bezüglich der überlauf 1 hat man sich wohl drauf geeinigt, da die irgendwann über die grenzen nahc linsk überläuft, dass man sie ignoriert.
sonst würde man ja auch nie fertig werden :-)
Danke hast mir echt geholfen!