Also, ich begrüße Sie zur heutigen zweiten Vorlesung zur Technischen
Informatik, also DT.
Wir werden uns heute befassen mit dem Thema, das vielleicht erstmal
ein bisschen sperrig erscheint und wo Sie vielleicht glauben, das
kennen Sie alles schon.
Zahlensystem und Codierung wird das Thema sein.
Und dann kann ich nur sagen, aus der Erfahrung der letzten Jahre,
unterschätzen Sie das nicht, hören Sie durchaus mal zu und natürlich
wird es einige unter Ihnen geben, die können das schon daherbeten und
wissen das alles schon auswendig, aber es wird andere geben, die noch
Schwierigkeiten haben.
Also deswegen habe ich auch gesagt, versuchen Sie sich mal
untereinander kennenzulernen, Lerngröbchen zu bilden, was gar nicht
schlecht ist und vielleicht lernt auch jemand, der ein bisschen besser
ist, auch von einem, der vielleicht nicht ganz so gut drauf ist, etwas
und versuchen Sie das mal zu beherzigen.
Es gibt hier einen kleinen Werbeblock.
Es geht hier um dieses Stipendium für die Begabtenstiftung Informatik,
das haben Sie gerade schon gesehen.
Sie bekommen die Folien ja auch, schauen Sie da mal rein, da wird ein
Projekt gesponsert.
Da will ich jetzt aber auch nicht weiter darauf eingehen.
Also heute Zahlendarstellung und Codierung.
Das ist das, was wir besprechen wollen.
Wir wollen uns also erstmal mit Zahlensystemen befassen, dann mit der
Darstellung negativer Zahlen.
Das hört sich so einfach an, negative Zahlen, aber Sie werden sehen,
so ganz trivial ist das gar nicht.
Darstellung von Fest- und Fließkommazahlen.
Also soweit werde ich maximal heute kommen.
Und dann in den nächsten Stunden Codierungen zur Zahl- und
Zeichendarstellung und fehlerkorrigierende Codes.
Also Hamming Codes werden wir insbesondere betrachten.
Das ist also jetzt mal so der Plan für die nächsten Stunden.
Vielleicht zur Einführung.
Menschen rechnen typischerweise im Dezimalzahlensystem.
Die Rechner typischerweise im Dualsystem, muss übrigens nicht sein,
aber die Rechner, die wir so kennen und die wir in der Vorlesung
betrachten, die rechnen im Dualsystem.
Wir können uns auch ganz andere Rechner vorstellen.
Da kann ich Ihnen mal irgendwann in Ruhe was erzählen.
Es gibt auch Rechner, die in Winkelsystemen rechnen usw.
Das kann man alles machen, aber wir gehen davon aus, dass wir in
Dualzahlen rechnen.
Wir brauchen also eine Konvertierung von den Dezimalzahlen zu den
Dualzahlen.
Wir können natürlich Oktal- und Hexadezimalzahlen-Systeme betrachten.
Der Vorteil ist, wenn wir das machen, dass wir eins zu eins umrechnen
können zwischen Dualzahlen, Oktalzahlen und Hexadezimalzahlen.
Das werden wir gleich noch besprechen.
Wir können also eins zu eins umrechnen, müssen also keine großen
Konvertierungen durchführen.
Und das ist der Vorteil dabei.
Wir nehmen Hexadezimalzahlen, um die langen Dualzahlen überhaupt für
den Menschen darstellbar zu machen.
Jetzt möchten wir im Prinzip die Zusammenhänge und die mathematischen
Grundlagen dieser Zahlensysteme verstehen.
Und wie gesagt, für den einen oder anderen mag das langweilig sein.
Oder er meint zumindest, es wäre langweilig.
Aber seien Sie vorsichtig.
Wir hatten schon die eine oder andere mündliche Prüfung mal, wo dann
sozusagen der Erfolg der mündlichen Prüfung davon abhing, ob man
sozusagen zwischen Zahlensystemen konvertieren kann.
Und die Leute konnten es nicht.
Also unterschätzen Sie es auch nicht.
Wir werden gleich ein paar Dinge sehen, wo es klar wird, dass es so
trivial gar nicht ist.
Also Zahlensysteme.
Erstmal ganz einfach.
Die Darstellung einer Zahl, die erfolgt in Form einer Reihe von
Ziffern.
ZI, von ZN, ZN-1 bis runter Z0, Z-1 bis Z-M.
So wollen wir die jetzt bezeichnen.
Das sind im Prinzip die Vorfaktoren, mit denen wir sozusagen Zahlen
beschreiben.
Jede Position I, die wir hier haben, in dieser Ziffernreihe ist ein
Stellenwert zugeordnet, und zwar die I-Tepotenz einer Basis.
Wir haben also eine Basis B.
Das kann 2 sein, das kann 8 sein, das kann 16 sein, das kann 10 sein
für die Dezimalzahlen.
Und wir haben natürlich dann eben B hoch N, B hoch N-1 bis runter zu B
hoch Minus M.
Und der Dezimalwert, und deswegen werden wir typischerweise auch über
Dezimalwerte sprechen, das heißt, wenn wir eine Umrechnung machen,
dann rechnen wir auch typischerweise zum Beispiel vom
Hexadezimalsystem, wenn wir auf das System zur Basis 7 wollen, gehen
wir über das Dezimalsystem und dann zur Basis 7.
Muss man nicht, aber ist typischerweise für den Menschen sehr viel
einfacher zu verstehen, wenn man das jetzt von Hand macht.
Und wenn ich jetzt den Dezimalwert berechnen möchte, XB, wenn B 10
ist, der Zahl gegeben durch die Ziffern ZI, dann kann ich das einfach
als so eine Summe hinschreiben, also ZN mal B hoch N, das geht, also
für jedes B kann ich den Dezimalwert berechnen, für 10 ist es
besonders simpel, für 2 kann ich es natürlich auch machen, also ZN mal
2 hoch N und so weiter, dann bekomme ich hier den entsprechenden
Dezimalwert.
Den kann ich so ausrechnen.
Das ist alles absolut trivial.
Und ich hoffe, das sollte auch klar sein.
So, jetzt vielleicht mal ein kleines Beispiel.
Ich habe immer so ein paar kleine Beispiele eingestreut.
Das hat übrigens auch den Vorteil, dass wir mal testen, ob der Rechner
hier wirklich so funktioniert, wie wir uns das vorstellen.
Das heißt, ich fange jetzt mal an.
Ich bin schon gespannt, ob es geht.
Also, klicke ich mal hier drauf.
Nehme mal einen Stift.
Ein bisschen ungewohnt, aber er schreibt.
Gut, wir nehmen jetzt also mal ein Beispiel.
Wir sagen mal, wir haben 1984,25 im Zehner-System.
Und das wollen wir jetzt darstellen.
Wollen wir jetzt sozusagen mal schauen, wie ist denn der Wert zustande
gekommen.
Na klar, das ist 1 mal 10 hoch 3 plus 9 mal 10 hoch 2.
Also ganz simpel, plus 8 mal 10 hoch 1 plus 4 mal 10 hoch 0.
Dann haben wir die Vorkommastellen.
Und dann haben wir noch plus 2 mal 10 hoch minus 1 plus 5 mal 10 hoch
minus 2.
Das ist also hier mal die Darstellung einer solchen Zahl.
Klar, das ist trivial.
Und genießen Sie es noch, solange es einfach bleibt.
Es wird gleich schwerer.
So, jetzt noch mal was ganz Simples.
Wir nehmen eine Zahl.
Daran kann ich Ihnen schon mal zeigen, was wir gleich bei
Fließkommazahlen oder später bei Fließkommazahlen berücksichtigen
wollen.
Wir haben eine Zahl, die ist 10,101 im Dual-System.
Das heißt, ich habe jetzt hier so etwas wie 0 plus 1 minus 1 minus 2
minus 3.
Dann kann ich das natürlich hinschreiben als 1 mal Dual-System 2 hoch
1 plus 0 mal 2 hoch 0.
Und was wir jetzt noch sehen werden, das brauchen wir gleich, wenn wir
normalisierte Mantissen darstellen wollen bei Gleitkommazahlen.
Das heißt, wir haben hier 0,1 im Dual-System ist 0,5 im Dezimal
-System.
Warum?
Weil wir jetzt hier hinschreiben, das ist dann 1 mal 2 hoch minus 1
plus 0 mal 2 hoch minus 2 plus 1 mal 2 hoch minus 3.
Das ist ganz wichtig, das werden wir nachher noch brauchen.
0,1 im Dual-System ist wirklich 0,5 im Dezimal-System.
Und das heißt, wir haben jetzt hier also 2 plus 0 plus 0,5 plus 0 plus
0,125 und das Ganze gibt 2,625 im Zehner-System.
Alles noch simpel und sollte Ihnen keine große Mühe bereiten.
Gehen wir also mal einen Schritt weiter.
Die Bezeichnung der Zahlensysteme, da kann man sich natürlich jetzt
wundern.
Wir sprechen ja von einem Dual-System, übrigens wir sprechen von
Binärzahlen oder von Dualzahlen.
Also wir gehen typischerweise vom Dual-System aus.
Basis 8 wäre ein Oktal-System, Basis 10 wäre ein Dezimal-System.
Und jetzt wird es komisch, 16 nennen wir Hexadezimal.
Das wäre nicht ganz korrekt, weil das aus dem Griechischen kommt.
Aus dem Lateinischen müsste es dann C-Dezimal-System heißen.
Aber ich denke, das ist das, was sich eingebürgert hat.
Wenn Sie recherchieren im Internet, kommen Sie genau auf diese
Bezeichnungen der entsprechenden Zahlensysteme.
Und die wollen wir auch beibehalten.
Dann haben wir Ziffern.
Ist klar, wir haben im Dual-System nur die ersten beiden Ziffern.
Im Oktal-System haben wir 8.
Im Dezimal-System haben wir 10.
Im Hexadezimal-System haben wir 16 Ziffern.
Und das F entspricht beispielsweise hier der Zahl 16.
Das werden wir auch gleich noch nutzen.
Damit können wir kompakt Dualzahlen darstellen.
Und das wollen wir auch gleich machen.
Was ist relevant?
Was Sie also wirklich in- und auswendig können sollten.
Und ich weiß, dass es viele von Ihnen auch können, aber eben nicht
alle.
Sie sollten das wirklich auswendig herbeten können.
Basis 2, also alle Zweierpotenzen, klar.
Basis 8, Oktal-System.
Und dann eben ganz wichtig, Basis 16, Hexadezimal-System.
Weil ich damit im Prinzip immer 4 Bit zusammenfassen kann.
Und die im Hexadezimal-System sehr kompakt darstellen kann.
Das ist also wichtig, dass Sie das verstehen.
Und die einzelnen Binärziffern, die werden als Bit bezeichnet.
Das ist die kleinste Informationseinheit.
Und jetzt ist das Problem, wenn wir Zahlen darstellen im Rechner.
Wir haben nun endlich einen Speicher, wir werden das gleich nochmal
genau sehen.
Wir wollen also im Prinzip mit einer festen Anzahl von Bit wollen wir
Zahlen darstellen.
Und jetzt gibt es zwei Möglichkeiten.
Wir können das mit Festkommazahlen machen.
Das heißt also, das Komma sitzt an einer fest vorbestimmten Stelle.
Oder wir machen das mit Fließkommazahlen.
Das heißt, das Komma darf im Prinzip hin und her laufen.
Das heißt, das Komma darf variieren.
Wir haben also einen Exponenten und wir haben einen entsprechenden
Vorfaktor, eine Mantisse.
Und das werden wir noch machen.
Wir werden natürlich Überläufe haben.
Das heißt, nicht alle Zahlen sind darstellbar.
Haben Sie eine Frage?
Moment, Moment, Moment.
Ja, wir fangen hier mit 1 an.
Sonst, wenn Sie mit 0 anfangen, sind wir bei der 15.
Sie haben recht.
Wir fangen hier bei 1 an.
Wenn wir die 0 der 1 zuordnen, ordnen wir F der 16 zu.
Sonst, wenn wir von 0 bis 15 zählen...
Genau, ist einfach nur zum Zählen.
Wir zählen von 1 bis 16.
Und wir können im Prinzip, Sie sehen es ja hier, wir zählen von 0 aus
ab.
Wenn wir von 0 zählen, ist das 9, 10, 11, 12, 13, 14, 15.
Ja, das meinen Sie.
Okay, gut, danke.
Ach, er klickt leider nicht immer so, wie ich will.
Und dann haben wir ab und zu Überläufe.
Das heißt, wir können nicht alle Zahlen darstellen.
Das werden wir noch sehen.
Wir werden im Prinzip sogar das Problem haben, Assoziativgesetz,
Distributivgesetz usw.
werden nicht so einfach gelten, weil wir im Prinzip oft den
Zahlenbereich verlassen.
Wir müssen negative und positive Zahlen unterscheiden und wir müssen
Gleitkommazahlen darstellen können, weil ich habe ja gerade gesagt,
mit einer Zahl, wo Sie ein festes Komma darstellen, da können Sie
nicht viel anfangen.
Damit haben Sie im Prinzip nur einen sehr kleinen Zahlenbereich.
Sie müssen im Grunde genommen zu Gleitkomma- oder Fließkommazahlen
hin.
Und das müssen wir auch darstellen können.
So, das erste, was wir jetzt machen, ist Umwandlung.
Ja, ganz einfach.
Wir wollen umwandeln vom Dezimalsystem in ein System mit der Basis b.
Wir haben also eine Zahl gegeben im Dezimalsystem, die Ziffern sind
zi, und wir wollen jetzt so etwas, wie wir gerade schon gesehen haben,
wir haben also so etwas wie die Zahl im Dezimalsystem, also x zu Basis
10, wollen wir jetzt darstellen, das ist ja normal gegeben als zn mal
10 hoch n plus blablabla bis z10 hoch minus m.
Das wollen wir jetzt darstellen als yp mal b hoch p plus usw.
Bis y minus q mal b hoch minus q.
Erste Frage ist natürlich, was sind p und q?
Die müssen wir natürlich erstmal festlegen.
Und in manchen Fällen geht das nicht exakt.
Das heißt, wir müssen nähern.
Es gibt Fälle, da geht es exakt, aber nicht in allen.
Und das wäre dann die Zahl zur Basis b.
Und ich möchte Ihnen jetzt zwei Methoden zeigen.
Und wie gesagt, bitte, auch wenn es sich jetzt erstmal trivial anhört,
aber das wird übrigens immer so sein, wenn ich Ihnen etwas vorrechne,
wird es sich hoffentlich immer trivial anhören, sonst mache ich ja
irgendwas falsch.
Aber bitte schauen Sie es sich nochmal in Ruhe zu Hause an.
Dann ist es nicht mehr so trivial.
Wenn Sie es selber mal rechnen, dann sieht es plötzlich doch wieder
ganz anders aus.
Und wir werden zwei Methoden kennenlernen, die kennen Sie hoffentlich
schon aus der Schule.
Euclidischer Algorithmus, trivial.
Horner Schema, und zwar diese Abwandlung zum Umrechnen von Zahlen, die
möchte ich Ihnen jetzt mal zeigen, dass wir damit im Prinzip aus dem
Dezimalsystem umrechnen können in eine Basis b.
Ja, wie macht man das?
Wir fangen also an, die Ziffern werden sukzessive und beginnen mit der
höchstwertigen Ziffer berechnet.
Und der erste Schritt ist, wir wollen erstmal das p berechnen.
Das heißt, wir gucken also, diese Zahl liegt hier zwischen b hoch p
und b hoch p plus 1.
Und dann wollen wir sozusagen das i gleich p setzen, weil das wäre
sozusagen der höchste Exponent.
Und das zi ist das x10.
Und jetzt berechnen wir diese yi und den Rest durch eine Division von
zi durch b hoch i.
Ja, so wollen wir die entsprechend berechnen.
Und der Rest, der hier wesentlich ist, den berechnen wir als zi mal
mod b hoch i.
Machen wir gleich ein Beispiel.
Und im dritten Schritt gehen wir sozusagen hier im Kreis.
Wir wiederholen also den zweiten Schritt für i gleich p minus 1.
Ja, setzen dann zi ist er i plus 1, bis er i gleich 0 ist oder bis der
Fehler klein genug ist.
Wir werden in der Regel einen Fehler machen.
Werden wir gleich anschauen.
So, jetzt ein Beispiel dazu.
Erstmal möchte ich Ihnen nochmal zeigen, was wir überhaupt machen
wollen bei einer Division.
So, und zwar haben wir erstmal z ist d mal q plus r.
So, und z, das nennen wir, ich kann das vielleicht mit Pünktchen
machen, das ist schöner.
So, z ist der Dividend.
Das d nennen wir Divisor.
Das brauchen wir übrigens nochmal bei der Division.
Deswegen ist es gar nicht so schlecht, wir machen es jetzt hier mal in
Ruhe.
Ja, auch wenn es jetzt hier vielleicht nicht so wichtig wäre oder Sie
das vielleicht schon wissen.
Das brauchen wir auf jeden Fall nochmal bei der Division.
q ist der Quotient.
Ja, und r ist jetzt der Rest.
So, wir können jetzt sagen, dass wir haben 0 kleiner gleich r kleiner
d Betrag.
Das können wir schon mal angeben, werden wir auch gleich brauchen.
Und dann als Notation, wir können jetzt sagen, wir haben zwei
Operationen, die sich aus Programmiersprachen auskennen.
Nämlich z div d, das ist q.
Und z mod d, das ist der Rest.
Und ich schreibe es Ihnen gleich mal hin mit einem ganz simplen
Beispiel.
Und zwar,
als Beispiel haben wir jetzt, wenn wir sagen 10 div 3, ist das
offenbar 3.
Ich teile also 10 durch 3, bleibt 3 übrig.
Und 10 mod 3 ist dann eben 1.
Das ist der Rest, der übrig bleibt.
Weil wir ja nur 9 rausbekommen, bleibt 1 übrig.
So, und dann, wie gesagt, ist es vielleicht gar nicht schlecht, wenn
wir das jetzt schon mal diskutieren, weil wir es ja bei der Division
sowieso brauchen.
Wenn ich jetzt durch q teile, haben wir z durch q, das ist, z durch d
muss ich natürlich machen, habe ich mich verschrieben,
z durch d, das ist q, plus r durch d.
Ja, da wollen wir ja drauf hinaus.
Das heißt, wir wollen im Prinzip jetzt beim Abdividieren, beim
Euclidischen Algorithmus, wollen wir im Prinzip immer das q bekommen
und dann den Rest übrig behalten.
Und das lassen wir jetzt vielleicht mal, dabei belassen wir es jetzt
vielleicht erstmal.
Und dann gebe ich Ihnen jetzt mal ein Beispiel.
Ein Beispiel für die Umrechnung.
Und zwar, wir wollen die Zahl 13 umrechnen, also Umrechnung von z
gleich 13 im Dezimalsystem ins Dualsystem.
Ja, also so wie wir es gerade kennengelernt haben.
Und das heißt, wir rechnen erstmal, wie groß ist denn unser p?
Das heißt also, wie hoch müssen wir eigentlich gehen?
Das heißt, wir sagen also, wir haben 2 hoch 3, das ist kleiner gleich
13 und das ist kleiner gleich 2 hoch 4.
Daraus folgt jetzt, dass unser p gleich 3 ist.
So, können Sie das so mitverfolgen, hier hängt es ein bisschen immer
am Bildschirm, aber ich denke, das sieht gut aus.
So, und jetzt dividieren wir einfach ab.
Und jetzt müssen Sie unterscheiden zwischen dem Schema, was wir jetzt
machen mit dem Euclidischen Algorithmus und dem Horner-Schema, was wir
gleich sehen werden.
Dass wir also hier nochmal anfangen, indem wir durch die höchste
Potenz teilen, also 13 geteilt durch 2 hoch 3.
2 hoch 3 ist 8, 13 durch 8 gibt also 1 und dann haben wir den Rest 5.
Die 5 wird jetzt wieder dividiert durch 2 hoch 2, 5 durch 4 gibt also
1, Rest 1.
Und die 1 wird jetzt wieder dividiert durch 2 hoch 1, 2 hoch 1 ist 2,
also 1 durch 2 gibt also 0, Rest 1.
Und dann wird nochmal die 1 durch 2 hoch 0 dividiert, 2 hoch 0 ist 1,
also 1 durch 1 gibt 1, Rest 0.
Und das heißt, wir lesen jetzt sozusagen in dieser Reihenfolge aus.
In dieser Reihenfolge wird ausgelesen und das heißt 13 im Zehner
-System gibt also 1, 1, 0, 1 im Zweier-System und wir lesen praktisch
in diese Richtung aus.
Und jetzt können wir die Probe machen.
Wir können ja sagen, das ist 1 mal 2 hoch 3 plus 1 mal 2 hoch 2 plus 0
mal 2 hoch 1 plus 1 mal 2 hoch 0 und das gibt 13 im Zehner-System.
Also, ganz simpel, euklidischer Algorithmus.
Aber bitte schauen Sie es sich nochmal an.
Sieht immer alles leicht aus, wenn man es vorrechnet, aber gerade
diese Unterscheidung zwischen dem Verfahren und dem, was wir gleich
noch machen werden, die ist offenbar nicht immer so einfach.
Okay, das wäre also jetzt euklidischer Algorithmus.
Machen wir nochmal ein Beispiel, Umwandlung ins Hexadezimalsystem.
Wir haben also diese Zahl mit Nachkommastellen.
Das geht übrigens beim euklidischen Algorithmus sehr schön.
Wir können also mit Nachkommastellen sehr schön arbeiten.
Gehen wir also mal durch.
Wir sagen, wir wollen 16 hoch 3 und 16 hoch 4, damit wollen wir
sozusagen diese Zahl einschachteln.
Die höchste Potenz ist also 16 hoch 3, das klappt.
Und jetzt dividieren wir durch 16 hoch 3, bekommen wir also hier den
Rest, 3453,233 usw.
Und wir dividieren jetzt hier weiter, bekommen jetzt hier ein D raus,
eine 7 raus usw.
Dividieren das also durch.
Ich möchte es nicht im Detail machen.
Dividieren das also immer durch und bekommen hier entsprechende Reste
und die Reste werden wieder verwendet, um damit weiterzurechnen.
Der Rest wird wieder hier vorne verwendet usw.
Und wir nehmen also 16 hoch 3, 16 hoch 2, 16 hoch 1, hoch 0, hoch
minus 1 usw.
Und am Ende brechen wir ab, haben aber einen Fehler.
Das heißt also, es ist nicht eine exakte Konversion, sondern wir hören
jetzt einfach auf und sagen, okay, damit reicht es uns.
Und das ist jetzt ungefähr, diese Zahl ist ungefähr dargestellt im
Hexadezimalsystem durch diese Zahl.
Wir brechen aber ab.
Ich habe ja gerade Beispiele gezeigt, wo wir wirklich ein exaktes
Ergebnis bekommen.
Hier bekommen wir kein exaktes Ergebnis.
Ich hoffe, es ist klar soweit, dass wir da entsprechend
durchdividieren.
Okay, jetzt zweite Technik, Horner Schema.
Das heißt also, wir wollen im Prinzip das Horner Schema verwenden.
Und ich hoffe, das ist Ihnen noch bekannt.
Wir wollen im Prinzip eine Zahl, gb, die stellen wir da als i gleich 0
bis n, zi mal b hoch i.
Und die können wir jetzt in folgender Form schreiben.
Wir können ja jetzt immer sagen, das ist zn mal b plus zn minus 1 in
Klammern mal b plus zn minus 2, das Ganze in Klammern mal b usw.
Das heißt also, ich kann jetzt sukzessive, wie bei Polynomen, kann ich
jetzt im Prinzip immer wieder mit b mal nehmen und bekomme diese
Darstellung.
Warum ist die Darstellung so geschickt?
Jetzt kann ich doch sofort sehen, wenn ich dividiere, wenn ich
abdividiere, wenn ich jetzt hier durch b teile und ich habe etwas zur
Basis b, dann können diese z0, z1, z2 usw., die können ja nur kleiner
sein als das.
Also wenn ich jetzt Basis 8 habe, wir haben es ja vorhin diskutiert,
dann habe ich jetzt Zahlen von 0 bis 7.
Habe ich Basis 16, habe ich Zahlen von 0 bis 15 usw.
Das heißt also, wenn ich jetzt hier dividiere durch b, dann wird es
auf jeden Fall diesen Rest geben.
Das heißt also, es gibt den Rest z0, den Rest z1, den Rest z2.
Das heißt, ich kann durch einfaches Abdividieren, bekomme ich jetzt,
diesmal in der anderen Reihenfolge, bekomme ich jetzt die
entsprechenden Terme, die ich haben möchte.
Also erst ist es z0, dann ist es z1 usw.
Wir haben hier mal ein Beispiel, also 15741 im Zehner-System kann ich
so darstellen als 1 mal 10 plus 5 in Klammern mal 10 plus 7 in
Klammern mal 10 usw.
Und es ist ja ziemlich offensichtlich, wenn ich jetzt hier durch 10
teile, bekomme ich den Rest 1, hier den Rest 4, hier den Rest 7, hier
den Rest 5.
Und das heißt, ich bekomme genau die gewünschten Ziffern, indem ich
einfach durchdividiere.
Also das Horner-Schema macht Sinn, um das so zu verwenden.
Wir bekommen also jetzt die Ziffer, die wir suchen, diese y0, ich gehe
mal von rechts aus, y0 bis yp, die bekommt man dadurch, dass man die
Zahl x10, also in der Dezimalnotation, durch b dividiert und nach der
Division den Rest abtrennt und notiert.
Und der Quotient wird dann wieder durch b dividiert usw.
Man nimmt also immer das Ergebnis und rechnet mit dem weiter.
Bis der Quotient verschwindet und dann werden wir im Prinzip von der
niederwertigsten zur höherwertigsten Stelle die entsprechende Notation
bekommen.
Problem ist nur, was machen wir jetzt mit Nachkommastellen?
Das geht so noch nicht.
Machen wir also erstmal ganzzahlige Zahlen und dann kommen wir zu
Nachkommazahlen.
Das heißt also, wir dividieren durch b, bekommen q0 plus den Rest,
dividieren das q0 wieder durch b, bekommen q1 plus den Rest usw.
Dann q1 durch b, q2 plus den Rest und so machen wir das immer weiter
und dann können wir ablesen die entsprechenden Werte aus den Resten.
So, und da mache ich mal ein Beispiel dazu.
Und zwar jetzt hier das Beispiel zum Horner-Schema.
Wir interpretieren die Zahl, die wir haben, als Polynom.
Das heißt also, wir haben eine Zahl, also Interpretation von x, b, die
Summe von i gleich 0 bis n, zi mal b hoch i als Polynom.
Und zwar sagen wir jetzt eben, dass dann x, b, das wäre Summe i gleich
0 bis n, zi mal x hoch i mit x gleich b, damit wir eben dieses Horner
-Schema anwenden können.
Als Beispiel haben wir x, b, das ist jetzt schon ein abstraktes
Beispiel, z3 mal x hoch 3 plus z2 mal x hoch 2 plus z1 mal x hoch 1
plus z0 mal x hoch 0, x hoch 0 ist 1.
Und das kann ich jetzt dann darstellen, indem ich jetzt praktisch
sukzessive solche Klammern setze.
Das wäre also z3 mal x plus z2 in Klammern mal x plus z1 in Klammern
mal x plus z0 mit x gleich b.
Und ich glaube, das zeigt das nochmal.
Und wie gesagt, vielleicht bekommen Sie dadurch ja noch weitergehende
Einsichten.
Also wenn man sich das jetzt anschaut, dann kann man also jetzt ganz
eindeutig sehen, dass man aus dieser Zahl, wenn ich sie so
interpretiere, ganz simpel die entsprechenden Koeffizienten z0, z1,
z2, z3, dass ich die entsprechend ableiten kann, indem ich einfach
dividiere.
Ich mache also jetzt eine sukzessive Division.
Und dann mache ich das jetzt folgendermaßen.
Ich sage also, dass ich diese Zahl z3 mal x plus z2 mal x plus z1 mal
x plus z0
geteilt durch b, gibt jetzt eben z3 mal x plus z2 mal x plus z1 Rest
z0.
Ich denke, das ist klar.
Und damit haben wir im Prinzip das z0 abgespalten.
Und damit kann ich jetzt von oben nach unten die entsprechenden
Vorfaktoren auslesen.
Dann habe ich z3 mal x plus z2 mal x plus z1.
Dividiere das Ganze wieder durch b.
Dann bleibt natürlich übrig, dass ich nur habe z3 mal x plus z2 Rest
z1.
Dann bleibt mir übrig z3 mal x plus z2 geteilt durch b, gibt dann nur
noch z3 Rest am z2.
Und dann bleibt mir nur noch z3 übrig geteilt durch b und das gibt
dann hoffentlich 0 Rest z3.
Das heißt also, ich kann jetzt hier auslesen in diese Richtung und
bekomme dann daraus, dass mein x zur Basis b wäre dann eben am z3,
also der höchste Wert zunächst am z2, z1, z0 und
dann hier z0 und eben in diese Richtung ausgelesen.
Gibt es dazu erstmal Fragen?
Ich kann nur sagen, nehmen Sie es ernst, am Ende müssen Sie das auch
können.
Sieht alles simpel aus.
Keine Fragen soweit?
Dann würde ich sagen, machen wir das Ganze nochmal am Beispiel vom
Hexadezimalsystem.
Da ist es ziemlich simpel, wir dividieren durch 16.
Haben also hier diese Zahl durch 16 dividiert, gibt 983, Rest 13.
Und dann dividieren wir sozusagen die immer weiter, die 61 durch 16
und so weiter und so weiter.
Und dann 61 durch 16 und so weiter.
Und dann können wir hier ablesen, die Reste sind 13 ist d, 7 ist 7, 13
ist d, 3 ist 3.
Also das heißt, wir bekommen hier entsprechend d, 7, d, 3 als
Ergebnis.
Das war jetzt Horner Schema.
Frage ist jetzt, läuft das auch genauso, wenn wir Nachkommastellen
haben?
Das ist nicht der Fall.
Da müssen wir uns jetzt was überlegen.
Wenn ich jetzt den Nachkommateil auch entsprechend umrechnen möchte,
das heißt, ich habe also jetzt hier den gebrochenen Anteil.
Und den kann ich jetzt natürlich genauso wieder schreiben, also mit
dem gleichen Trick.
Hier kann ich natürlich jetzt ein b hoch minus 1 abspalten.
Und wenn ich das mache, dann wird ziemlich offensichtlich, ich muss
jetzt mit b mal nehmen.
Nicht durch b dividieren, sondern mit b mal nehmen.
Und das macht also das Horner Schema dann ein bisschen unterschiedlich
von dem Euclidischen Algorithmus.
Das heißt, wir haben eine sukzessive Multiplikation des
Nachkommateils, der Dezimalzahl.
Und wir bekommen jetzt im Prinzip in der Reihenfolge der
höchstwertigen zu niederwertigsten Nachkommaziffer, werden wir gleich
sehen, bekommen wir die entsprechenden Faktoren raus.
Also, sehen wir hier ein Beispiel.
Wir wollen 0,233 im Zehnersystem, wo wir das Hexadezimalsystem
umrechnen, dann nehmen wir mit 16 mal, bekommen jetzt also hier eine
3.
Der Rest wird weitergenommen, wieder mit 16 mal genommen.
Wir bekommen hier eine 11 und so weiter.
Und so machen wir das sukzessive weiter und wir bekommen die
entsprechenden Größen hier als Faktoren.
Und die Faktoren sammeln wir sozusagen einfach ein.
Also dann hier eine 5, a, b und 3.
Dann bekommen wir hier die entsprechenden Nachkommastellen.
Also das wäre das Horner Schema.
Und das ist genau dual.
Wir multiplizieren jetzt mit der 16, anstatt dadurch zu dividieren,
weil wir eben das Horner Schema so angewendet haben, dass wir b hoch
minus 1 verwendet haben.
Da kann ich nur empfehlen, ich habe es ja mehrfach schon betont, bitte
Lerngruppen bilden.
Setzen Sie sich mal zu drei, vier Personen hin, rechnen Sie sich das
mal durch und Sie werden sehen, das ist ziemlich befriedigend, wenn
Sie dann mal sehen, wie es wirklich funktioniert.
Dass Sie also hier im Prinzip in dem Horner Schema, wie wir es gerade
gesehen haben, einfach b hoch minus 1 abspalten und jetzt durch eine
Multiplikation immer auf die entsprechend gewünschte Ziffer kommen.
Das ist, glaube ich, eine ganz schöne Sache und dann hat man es
wirklich einmal verstanden.
Und wenn man es einmal verstanden hat, dann wissen Sie es auch in zehn
Jahren noch.
Ist also besser, als wenn Sie jetzt nur lernen für eine Prüfung und in
sechs Monaten frage ich Sie und Sie wissen es wieder nicht mehr.
Also besser mal einmal durchschauen und selber verstehen.
Hier noch ein kleines Beispiel.
Und zwar wollen wir mal umrechnen eine Zahl, die Vor- und
Nachkommastellen hat.
Das heißt eine Umwandlung von der Zahl 28,25 im Zehnersystem.
Okay, die wollen wir jetzt in die Basis 7 umrechnen.
Also in Zahl zur Basis 7.
Basis 7 ist ja gar nicht mehr so gewöhnlich.
Das heißt also, wir fangen an.
Erstmal die Vorkommastellen.
Das heißt also, wir sagen 28 geteilt durch 7.
Das ist 4, Rest 0.
Und dann wird die 4 nochmal durch 7 geteilt.
Und das gibt 0, Rest 4.
Und die lesen wir jetzt so aus.
Und das heißt, wir können also sagen, dass also die 28 im Zehnersystem
ist dann also die 4, 0 im Siebenersystem.
Klar, soweit haben Sie es ja verstanden.
Und dann jetzt die Nachkommastellen.
Da müssen wir aber aufpassen.
Das wäre der zweite Schritt.
Dass wir also dann sagen 0,25 mal 7.
0,25 mal 7 gibt 1,75.
Und das spalten wir ab.
Die 1 plus die 0,75.
Und die 1, das ist jetzt hier unser Z-1.
Und jetzt rechnen wir weiter mit der 0,75.
Die nehmen wir jetzt mit 7 mal.
Und das gibt dann 5,25.
Und das gibt 5 plus 0,25.
Und das gibt jetzt hier unser Z-2.
Und jetzt können wir natürlich überlegen, wenn wir jetzt
weiterrechnen, ist ja ziemlich klar, dann wird 0,25, 0,75 und so
weiter, das wird sich jetzt immer abwechseln.
Das heißt, wir haben jetzt hier eine periodische Zahl bekommen.
Und wir können also sagen, das sind jetzt die 0,25.
Wenn wir das jetzt weiterrechnen, wird das ganze periodisch.
Das heißt also, 0,25 im Zehner-System ist also 0,15 Periode im
Siebener -System.
Und damit ist 28,25 im Zehner-System ist dann also 40,15 Periode im
Siebener -System.
Ist das soweit klar oder gibt es Fragen bis hierhin?
Also das wären jetzt erstmal simple Umrechnungen.
Der nächste Schritt wären jetzt negative Zahlen.
Jetzt würde ich sagen, ich glaube, wir haben jetzt hier praktisch eine
Zäsur erreicht.
Ich gucke mal kurz.
Achso, wir machen das vielleicht noch zu Ende, dann machen wir die
Pause.
Die Frage ist ja, wenn ich eine gegebene Zahl zur Basis B umrechnen
möchte ins Dezimalsystem.
Ich glaube, das müssen wir nicht diskutieren.
Das ist natürlich total simpel.
Das haben wir am Anfang schon gemacht.
Da rechne ich es einfach aus.
Oder ist, glaube ich, klar, das müssen wir nicht diskutieren.
Klar, rechne ich einfach sozusagen den Wert aus.
Dann ist natürlich die Frage, wenn ich jetzt zwischen beliebigen
Stellenwertsystemen hin und her rechne.
Also das heißt zum Beispiel zwischen Basis 7 und Basis 8.
Ja, dann würde ich vorschlagen, damit man das einfach gut verstehen
kann, dass man erstmal die Zahlen ins Dezimalsystem umwandelt und dann
ins Zielsystem geht mit Methode 1 oder 2.
Also Euclidischer Algorithmus oder Horner Schema.
Man kann auch direkt umwandeln, aber ich würde dann sagen, dass man
erstmal ins Dezimalsystem geht.
Dann gibt es aber Spezialfälle.
Und das habe ich ja gerade schon gesagt.
Warum ist es so wichtig, dass man als Informatiker das
Hexadezimalsystem kennt?
Weil ich im Prinzip vom Dualsystem ins Hexadezimalsystem direkt
umwandeln kann.
Oder Dualsystem ins Oktalsystem und so weiter.
Das kann ich also direkt machen.
Das heißt, wenn also eine Basis, eine Potenz einer anderen Basis ist,
dann kann ich einfach mehrere Stellen zusammenfassen.
Und damit kann ich eine Folge von Ziffern, also zum Beispiel beim
Dualsystem ins Hexadezimalsystem, fasse ich einfach vier Ziffern
zusammen und bekomme die entsprechende Hexadezimalzahl.
Deswegen sollte man das auf jeden Fall nutzen.
Und da gebe ich nochmal ein Beispiel.
Wie gesagt, bevor wir die Pause machen, gebe ich Ihnen mal noch ein
Beispiel.
Und zwar haben wir als Beispiel jetzt mal überlegt, Dualsystem ins
Oktalsystem.
Und ich hoffe, dass Sie da noch ein bisschen was bei lernen.
Also Beispiel wäre Dualsystem umzurechnen ins Oktalsystem.
Und da muss man jetzt eben gar nicht viel rechnen.
Aber wir wollen es mal herleiten.
Aber Sie können im Grunde genommen jetzt immer Trippel von Ziffern
zusammenfassen und damit entsprechend gleich sagen, was die Ziffer
sein muss im Oktalsystem.
Das heißt, nehmen wir doch mal an, wir hätten so etwas wie Z5, Z4, Z3,
Z2, Z1, Z0.
Das wäre jetzt unsere Ziffer im Zweiersystem und wir wollen die
umrechnen ins Oktalsystem.
Wir hätten da also X1, X0.
Also Sie sehen, ich gehe schon mal davon aus, dass ich wüsste, dass
ich Trippel zusammenfassen kann.
Die ZI, die kommen ja jetzt aus 0,1.
I gleich 0 bis 5.
Und die XI, die kommen aus 0 bis 7 für I gleich 0 und 1.
So und jetzt ist die Frage, wie macht man das?
Jetzt sagen wir doch, wir setzen gleich.
Das heißt also, wir schreiben mal hin.
Wir sagen also Z5 mal 2 hoch 5 plus Z4 mal 2 hoch 4 plus Z3 mal 2 hoch
3 plus Z2 mal 2 hoch 2 plus Z1 mal 2 hoch 1 plus Z0 mal 2 hoch 0.
Das soll jetzt ja gleich sein.
X1 mal 8 hoch 1 plus X0 mal 8 hoch 0.
Das wollen wir ja haben.
Wir wollen also jetzt X0 und X1 bestimmen, indem wir sozusagen diese
Gleichung auflösen.
Und das können wir jetzt sehr schön machen, indem wir folgenden Trick
verwenden.
Wir sagen jetzt einfach mal, wir nehmen mal diese Gleichung hier oben,
nehmen wir jetzt mit 2 hoch 3 mal.
2 hoch 3 ist übrigens 8, ist 8 mal 8 hoch 1.
Das heißt, ich kann das hier ersetzen durch 8 hoch 1.
Und wenn ich 2 hoch 3 mal nehme, dann bekomme ich ja hier 2 hoch 5.
Moment, da habe ich vielleicht ein bisschen zu viel gemacht.
Das wird dann 2 hoch 2.
Und das hier wird 2 hoch 1.
Und das hier wird 2 hoch 0.
Und ich kann hier unten natürlich jetzt gedanklich mal nehmen mit 8
hoch 0.
Das heißt, ich kann jetzt direkt ablesen.
Wir haben hier jetzt einen Koeffizientenvergleich.
Wir sehen ja jetzt, dass wir hier 8 hoch 1 haben und da 8 hoch 0.
Das heißt, ich kann also x1 und x0 direkt ablesen.
Und genau das werden wir jetzt auch machen.
Das heißt, hieraus folgt jetzt Koeffizientenvergleich, dass x0 ist
dann praktisch z2 mal 2 hoch 2 plus z1 mal 2 hoch 1 plus z0 mal 2 hoch
0.
Und x1 ist z5 mal 2 hoch 2 plus z4 mal 2 hoch 1 plus z3 mal 2 hoch 0.
Und das entspricht jetzt meinem x0 im 8er System.
Und das ist jetzt natürlich genau z2, z1,
z0 im 2er System.
Und hier haben wir dann x1 im 8er System, ist dann z5, z4, z3 im 2er
System.
Und so können Sie es also direkt ablesen.
Das heißt, als Beispiel, zum Beispiel, wenn wir jetzt sagen, wir haben
so etwas wie 0, 1, 0, 1, 1, 0 im 2er System.
Das ist ja offenbar 2 hoch 4 plus 2 hoch 2 plus 2 hoch 1.
Das ist 22 im 10er System.
Und das wäre das Gleiche wie 2 und 6, indem ich das einfach direkt
ablese im 8er System.
Und das wäre natürlich genau das Gleiche.
Wir haben hier also 2 mal 8 hoch 1 plus 6 mal 8 hoch 0.
Und das ist natürlich auch 22 im 10er System.
Ist das klar?
Also das vielleicht so als kleine Herleitung, dass wir im Prinzip eine
Zahl im Dualsystem direkt umwandeln können, in eine Zahl im
Oktalsystem, indem wir einfach Triple zusammenfassen.
Und im Hexadezimalsystem sind es Quadruple, die wir zusammenfassen.
Und damit können wir also direkt, ohne zu rechnen, umwandeln.
Jetzt würde ich sagen, machen wir die 5 Minuten Pause, so bis ungefähr
9 Minuten vor.
Und dann machen wir weiter.
Und wie gesagt, versuchen Sie mal, dass Sie sich mal untereinander ein
bisschen kennenlernen.
Das wäre, glaube ich, schon wichtig.
Also, bis gleich.
Dann geht es jetzt mal weiter mit der Vorlesung.
Das heißt, wir haben uns gerade angeschaut, wie wir direkt umwandeln
können zwischen Dual- und dem Oktalsystem.
Und das Ganze geht natürlich auch jetzt für das Hexadezimalsystem.
Möchten wir jetzt, glaube ich, nicht mehr diskutieren.
Da können Sie natürlich auch eine Dualzahl einfach umwandeln, indem
Sie einfach diese Quadruple herausfinden und die dann direkt
umwandeln.
Ich denke, da schauen sich einfach mal alle in die Folien.
Das ist nicht so wahnsinnig schwierig.
Jetzt kommt es zu einem Thema negative Zahlen.
Auch das wird immer unterschätzt.
Und ich glaube, so der eine oder andere auch hier im Auditorium hat
nicht so ganz verstanden, wie hoch die Durchfallquoten sind hier in
der TI.
Und das liegt meistens an solchen Kleinigkeiten.
Aber wie gesagt, vielleicht kann dir der ein oder andere auch mal den
Kommilitonen auf die Sprünge helfen.
Es wird am Ende an solchen Dingen liegen.
Darstellung negativer Zahlen.
Sie können das natürlich alle jetzt trivial finden, aber ich hoffe, es
ist am Ende wirklich trivial.
Schauen Sie mal, wir fangen mal ganz einfach an.
Wir haben also vier Möglichkeiten, negative Zahlen darzustellen.
Also positive und negative Zahlen.
Wir können das also machen mit Betrag und Vorzeichen.
Das ist ziemlich klar.
Wir können eine Stellenkomplementdarstellung verwenden.
Das heißt, in einer Komplement.
Einer Komplement bedeutet, wir komplementieren im Prinzip jede
Bittstelle.
Werden wir gleich sehen, das hat ein paar Nachteile.
Dann gibt es diese sogenannte Zweierkomplement oder
Zweikomplementdarstellung.
Ja, das ist sozusagen das, was man typischerweise bei Festkommazahlen
auch wirklich macht.
Und dann gibt es noch diese Offset-Dualdarstellung oder
Exzessdarstellung.
Das werden wir bei Floating-Point-Zahlen oder bei Gleitkommazahlen
verwenden.
Und da macht das auch Sinn.
Das heißt auch bei Festkommazahlen Zweikomplement und bei
Fließkommazahlen dann Offset-Dual.
Und ja, fangen wir erstmal an mit Betrag und Vorzeichen.
Das ist ziemlich simpel, macht aber auch nicht viel Sinn.
Das heißt also, Sie werden damit nicht viel machen können.
Das heißt also, man überlegt sich, dass man eine Stelle als Vorzeichen
-Bit benutzt.
Da nimmt man typischerweise das am meisten links stehende Bit.
Warum?
Weil man typischerweise bei Vergleichen von Zahlen links anfängt.
Und wir werden das auch bei Fließkommazahlen sehen.
Wir fangen also links an.
Das heißt also, hier schieben wir auch das Vorzeichen nach links.
Wir könnten ja sonst auch das Vorzeichen als fünftes Bit nehmen oder
als erstes Bit oder was auch immer.
Aber wir nehmen halt das Vorzeichen als das Bit, was am weitesten
links steht.
Ist es 0, ist die Zahl positiv.
Ist es 1, ist die Zahl negativ.
Beispiel wäre die Zahl plus 18, so dargestellt, oder die Zahl minus
18.
Und da gebe ich Ihnen jetzt gleich nochmal ein Beispiel, weil wir
haben da ein kleines Problem.
Vielleicht sehen Sie das schon.
Wenn ich das Ganze mit Betrag und Vorzeichen darstelle, haben wir hier
ein kleines Problem.
Deswegen will ich Ihnen das gleich mal hinmalen.
Wir nehmen also als Beispiel wieder diese Zahl, die wir gerade hatten.
Wir haben also eine erstmal vorzeichenlose Zahl.
Vorzeichenlose Dualzahl.
Und wenn das jetzt die 18 wäre, 18 im Zehnersystem, wäre also 1, 0, 0,
1, 0 im Dualsystem.
Und jetzt mit Betrag und Vorzeichen, was würden wir denn machen?
Also Betrag und Vorzeichen.
Wir würden jetzt im Prinzip irgendwo versuchen, eine Stelle mehr zu
nehmen.
Und das heißt, hier würde sich anbieten, wir nehmen einfach eine
Stelle mehr und schreiben vor die 1 eine 0.
Jetzt überlegen Sie mal, macht das wirklich Sinn?
Das heißt also, wir würden sagen, dass die Plus 18 im Zehnersystem,
die wäre jetzt sowas wie 0, 1, 0, 0, 1, 0 im Zweiersystem.
Und die Zahl Minus 18 im Zehnersystem, die wäre jetzt sowas wie 1, 1,
0, 0, 1, 0.
Macht das Sinn?
Was haben wir für ein Problem, wenn wir das so machen?
Dass wir sozusagen jetzt einfach nur eine Stelle mehr nehmen und
sagen, das soll jetzt die negative Zahl sein.
Wollen wir das wirklich so machen?
Typischerweise haben wir doch relativ viele Bit-Zufügungen, sagen wir
mal 16, 32, 64, 128 usw.
Das heißt also, wenn wir jetzt diese Zahl interpretieren würden als
eine 32-Bit-Zahl, würde das ja gar nicht stimmen.
Das heißt also, wir müssen im Prinzip immer auf die entsprechende Bit
-Zahl hochgehen.
Das heißt also, wir müssten dann sagen, dass Plus 18 im Zehnersystem,
das wäre jetzt zum Beispiel sowas wie, wir hätten jetzt hier eine 0
und dann hätten wir 0, 0, 0, 0, 0, 0, 0, 0 und dann hier immer noch
weiter und dann 0, 0, 0, 1, 0, 0, 1, 0 im Zweiersystem.
Das wäre dann die Repräsentierung in einem entsprechenden System mit
32, 64, 128 Bit.
Und genauso gut auch die Minus 18 im Zehnersystem, da hätte ich dann
entsprechend hier die 1 und dann müsste ich hier natürlich auch wieder
die entsprechenden Zahlen einfügen.
Das heißt also, wir sind nicht unabhängig davon, wie viel Bit wir
verwenden für die Repräsentierung.
Und das ist mal schlecht.
Das wollen wir also nicht.
Das wäre also diese primitive Notation, die man eigentlich nicht
verwenden kann.
Also nur mit Betrag und Vorzeichen, wir werden das später noch mal
diskutieren.
Bei Floating-Point-Zahlen, ja, aber bei Festkomma wollen wir das nicht
verwenden.
Wie wäre denn das mit Betrag und Vorzeichen, wenn wir jetzt 3 Bit
Betrag hätten, dann würden wir das also so darstellen.
Wir hätten also hier die Nuller und hätten hier die entsprechenden
Einser und würden so die entsprechenden Zahlen darstellen.
Das Problem ist, wir haben auch eine Null und eine Minus Null, was
nicht schön ist.
Das heißt also, wir haben einen symmetrischen Zahlenbereich, aber wir
haben das Problem, was ich gerade gesagt habe, die Darstellung ändert
sich bei der Bereichserweiterung.
Das macht keinen Sinn.
Wir müssen bei der Addition und bei der Subtraktion müssen die
Vorzeichen gesondert betrachtet werden.
Das ist natürlich schwierig.
Wir müssten also im Prinzip immer eine Fallunterscheidung machen.
Und das müssen wir zum Beispiel beim Zweikomplement, was wir gleich
kennenlernen, nicht mehr machen.
Und es gibt eben eine Redundanz.
Wir haben zwei Repräsentationen der Null, Plus Null und Minus Null.
Das ist eigentlich auch nicht schön.
Okay, also Verbesserung wäre jetzt das sogenannte Einer-Komplement.
Und beim Einer-Komplement machen wir es jetzt so, oder Stellen
-Komplement.
Wir verwenden die gegebene Zahl und jedes Bit wird im Prinzip
getauscht, das heißt getoggelt.
Wenn wir eine Null haben, bekommen wir eine Eins, eine Eins gibt eine
Null und so weiter.
Und wenn wir jetzt also diese positiven Zahlen haben, von Null bis
Sieben, dann werden wir das jetzt im Prinzip durch ein Toggeln, werden
wir jetzt aus den Nullern hier die Einser bekommen.
Das heißt die Null wird eine Minus Null.
Ah, dummerweise haben wir wieder zwei Nulle.
Das müssen wir noch loswerden.
Aber wir haben hier, wenn wir die toggeln, bekommen wir hier die Null,
toggeln wir das, bekommen wir die Minus Eins, hier toggeln wir das,
bekommen wir die Minus Zwei und so weiter.
Das heißt also eine reine Komplementierung und wir bekommen
entsprechend die negative Zahl.
Und das Wichtige ist, was Sie gleich sehen werden, ich hoffe Sie haben
in der Mathematik aufgepasst, das ist ein Restklassenring.
Das heißt also, wir werden uns im Prinzip auf diesem Ring bewegen.
Und das macht das Ganze sozusagen auch aus, auch beim Zweikomplement.
Wir werden also gleich eine Null einführen, mit der wir sozusagen
immer wieder zurückkommen in den von uns gewünschten Zahlenbereich.
Und das könnte verwirrend werden.
Also fragen Sie, wenn das verwirrt.
Gebe ich Ihnen jetzt hier mal ein Beispiel.
Wir wollen uns ja mal fragen, was ist denn, wenn ich jetzt eine Zahl
habe und das Einer-Komplement dazu addiere?
Das heißt also, die Frage ist doch, was ist eigentlich die Zahl Z plus
ihr Einer-Komplement?
Das heißt, ich möchte wissen, was hier rauskommt.
Naja, und hoffentlich kommt Null raus.
Das wollen wir ja eigentlich erreichen.
Wir haben also eine beliebige Zahl, Z, und die hat auf jeden Fall mal
eine Null am Anfang, und zwar für das N.
Und dann bekommen wir jetzt hier Sternchen.
Wir haben drei Sternchen gemacht.
Und dann haben wir hier Wertigkeit 0, 1, n-1, n-2 und n-3.
Das sind hier die Wertigkeiten.
Und jetzt addieren wir dazu noch eine Zahl, die negativ ist, das
Komplement.
Und dann wäre die ja einfach das Sternquer, Sternquer, Sternquer.
Und das Ganze geht bis hier runter.
Das heißt also, egal was ich einsetze, es wird getoggelt.
Und dann möchte ich das zusammen addieren.
Dann ist ja klar, eine beliebige Binärzahl oder Binärziffer plus ihr
Komplement gibt hier eine 1.
Das gibt eine 1.
Gehen wir hoch, das gibt eine 1, das gibt eine 1, das gibt eine 1 und
das gibt auch eine 1.
Und das heißt, das bekommen wir jetzt raus.
Wenn wir jetzt hier lauter 1 entstehen haben, jetzt können wir im
Prinzip, wir laufen sozusagen wirklich um einen Kreis herum.
Das heißt also, das Ganze ist 2 hoch n plus 1 minus 1.
Und das entspricht jetzt der Null.
Und das ist wichtig, das brauchen wir gleich.
Das heißt, 2 hoch n plus 1 minus 1 entspricht der Null im Einer
-Komplement.
So ist es einfach definiert.
Das heißt, vereinfacht gesprochen, rechnen wir eigentlich nie mit
negativen Zahlen.
Wir interpretieren nur die entsprechenden positiven Zahlen so, dass
wir in diesen Bereich wieder reinrutschen, indem wir einfach dieses 2
hoch n plus 1 minus 1 abziehen und damit in den negativen Bereich
kommen.
Das ist eigentlich die Idee dabei.
Das heißt, wir rechnen sozusagen modulo 2 hoch n plus 1 minus 1.
Und das ist der ganze Clou dabei.
Und wenn man das verstanden hat, wird das Ganze einfach.
Wenn man es nicht verstanden hat, kommt man, glaube ich, damit nicht
klar.
Das heißt also, wir haben einen symmetrischen Wertebereich.
Und da gucken wir uns gleich mal an, von wo bis wo der geht.
Der geht jetzt also, wenn wir so eine Zahl anschauen, Z.
Die soll ja bestehen aus Zn, Zn minus 1 und dann runter bis Z1 und Z0.
Und so eine Zahl, die geht dann von minus 2 hoch n minus 1 bis 2 hoch
n minus 1.
Und wir haben aber ein Problem.
Wir haben hier die 0 zweimal.
Das heißt also, wir können sagen, dass wir, wenn wir das so
betrachten, dass wir von der 0 gehen bis zu 2 hoch n minus 1 und dann
minus 2 hoch n minus 1.
Moment, das habe ich hier verschrieben.
Sorry,
das muss natürlich heißen minus 1.
Das Radiergummi hat kleine Probleme hier.
Okay, ich muss es, glaube ich, ganz weg machen.
Bis 2 hoch n minus 1.
Ja, dann minus 2 hoch n minus 1.
Und dann gehen wir wieder zu 0 und wir haben sozusagen hier das
Problem, dass wir zweimal die 0 haben.
Okay, betrachten wir mal ein Beispiel.
Indem wir mal konkret betrachten, wie viele Bitstellen können wir denn
haben.
Und zwar sagen wir einfach, wir haben eine Zahl, die besteht nur aus
drei Stellen, also Z2, Z1 und Z0.
Dann können wir jetzt sagen, dass Z plus Zek, also Z und das eine
Komplement zusammen addiert, gibt 7.
Das haben wir ja gerade so gerechnet.
Und die 7, die entspricht der 0.
Das heißt also, wenn ich die zusammen addiere, kommt die 0 raus.
Das heißt, wir laufen also Modulo 7.
Und das heißt, wenn wir jetzt Pendants haben, die werden wir uns
gleich mal einzeichnen.
Ich male mal so einen Kreis.
Wenn ich mir mal so einen Kreis male, hier mal hin.
Und ich fange hier mal an mit...
Ah, da brauche ich vielleicht doch verschiedene Farben.
Indem ich jetzt hier 0, 0, 0 hin male.
Und dann das Ganze jetzt so ein bisschen aufteile.
Gar nicht so einfach, das jetzt gescheit zu machen.
Dann haben wir jetzt hier die 0, 0, 1.
0, 1, 0.
Dann 0, 1, 1.
Dann gehen wir hier zu 1, 0, 0.
Und dann 1, 0, 1.
Und dann 1, 1, 0.
Und dann hier oben noch als letztes dann 1, 1, 1.
So, und das heißt, jetzt können wir im Prinzip hier sagen, das hier
ist die 0.
Das ist die minus 0.
Das hier ist die 1.
Das ist die minus 1.
Das ist die 2, die minus 2.
Und das ist die 3 und die minus 3.
Und die können wir jetzt natürlich im Prinzip, ich hoffe, hier hat man
eine andere Farbe hier, können wir die jetzt verbinden.
Das heißt, also minus 3 und 0 können wir verbinden.
Die minus 2 und die 1 können wir verbinden und so weiter.
Das heißt, also die können wir alle mal verbinden.
Und jetzt können wir im Prinzip so ein Pendant rausfinden.
Und wir sagen jetzt, dass die Pendants, die wir hier haben, die
unterscheiden sich jetzt um 3.
Also das wäre um 2 hoch n minus 1 und das wäre die 3.
Und das heißt, wir können jetzt sagen, wenn ich das Z darstellen
möchte und das Z jetzt am Anfang mit einer 0 und dann am Z1 Z0 im 2
-System, dann kann ich das auch darstellen mit einer 1.
Das wäre die negative Zahl.
Und dann Z1 Z0 im 2-System.
Und dann muss ich jetzt was addieren?
Ich muss jetzt addieren 2 hoch n minus 1.
Das heißt, ich habe jetzt hier plus 2 hoch n minus 1.
Gut, im Allgemeinen kann ich jetzt natürlich sagen, ich nutze das
erste Bit aus, genau nach dieser Formel.
Also wenn ich jetzt genau diese Formel hier verwende, wenn ich das
jetzt hier verwende, was wir jetzt gerade spezifisch hergeleitet
haben, dann kann ich jetzt sagen, dass ich also das Z darstellen kann
im allgemeinen Fall.
Und das ist wichtig als minus Zn mal 2 hoch n minus 1 plus und dann
haben wir dann Zn minus 1 mal 2 hoch n minus 1 plus und so weiter bis
runter nach Z0.
Das heißt also, die erste Stelle, die gibt uns sozusagen jetzt hier
vor, ob es eine negative Zahl oder eine positive Zahl ist.
Ist das klar, dass wir das hier raus dann ableiten können?
Und das Schöne ist jetzt, wenn wir das verallgemeinert haben, achso,
ja doch, das kommt jetzt, dass wir das jetzt hier sehen können.
Wir können jetzt also sagen, wenn ja Zek plus Z gibt 2 hoch n plus 1
minus 1, dann kann ich auch sagen, Zek ist 2 hoch n plus 1 minus 1
minus Z.
Das können wir damit sagen.
Und das bedeutet ja nichts anderes, als dass wir wie gesagt sozusagen
im Kreis laufen.
Also modulo das ganze Rechnen.
Das ist der Clou und ich hoffe, das verstehen Sie.
Die negativen Zahlen sind wiederum durch ein Gesetzesbit, wie bei
Vorzeichen und Betrag, sind die sozusagen charakterisiert.
In der ersten Stelle muss sozusagen ein Gesetzesbit sein, eine 1 sein.
Und ja, jetzt die Bit-Folge, die hat jetzt den Wert minus Zn mal, und
das haben wir gerade hergeleitet, 2 hoch n, nicht 2 hoch n plus 1,
sondern 2 hoch n minus 1, leite ich gleich nochmal her, in Klammern,
plus dann die restliche Bit-Folge.
So können wir das Ganze herleiten.
Und wie gesagt, schauen Sie sich das mal an.
Das ist nicht trivial.
Also Sie mögen jetzt da schmunzeln und hingucken und sagen, ach, das
sind ja alles Dinge, die kann ich schon seit Jahren.
Schauen Sie sich das nochmal in Ruhe an, das ist nicht trivial.
Weil es hier wirklich darum geht, dass wir im Grunde genommen
natürlich Zahlen, Dualzahlen verwenden, die größer sind.
Also wir verwenden eigentlich positive Dualzahlen, um negative Zahlen
darzustellen, indem wir eben entsprechend immer diesen Teil sozusagen
abrechnen, um in diesem entsprechenden gewünschten negativen Bereich
zu bleiben.
Also im negativ bis positiven Bereich zu bleiben.
Und das ist, glaube ich, ganz wichtig, dass Sie sich das nochmal
anschauen.
Ja, also das wäre sozusagen die Bitfolge, die wir hier rausbekommen.
So, und jetzt noch ein Beispiel.
Und zwar...
Das Beispiel hoffentlich zeigt das jetzt nochmal in aller Klarheit.
Wir haben also eine positive Zahl.
Und zwar Z.
Und die Zahl ist dargestellt als 0, 1, 0 im 2-System.
Und das ist jetzt plus 2 im 10er-System.
Also ganz, ganz einfach.
Einfacher geht es nicht.
Jetzt kann ich das 1er-Komplement, um Ihnen das nochmal zu zeigen...
Ja, ich nehme jetzt das 1er-Komplement.
Und beim 1er-Komplement interpretiere ich einfach als positive Zahl.
Das kann ich ja machen.
Das schadet ja nicht, weil wir uns vorhin darauf geeinigt haben, dass
wir Modulo rechnen wollen.
Dann kann ich also sagen, dass das Z1er-Komplement, das ist ja 1, 0, 1
im 2-System.
Das ist ja nichts anderes als 5.
Das ist also 5 im 10er-System.
Nur dummerweise verlasse ich damit eigentlich den von mir vorgegebenen
Zahlenbereich.
Den haben wir ja gerade gehabt.
Wir wollen ja gar nicht über 3 hinausgehen.
Also wir wollen ja zwischen 3 und –3 sein.
Das heißt also, jetzt wären wir bei 5.
Das ist also nicht die richtige Interpretation.
Wir müssen hier jetzt noch etwas abziehen.
Nämlich 7.
Ich hoffe, Sie verstehen das.
Das heißt, dadurch, dass wir Modulo rechnen, kann ich jetzt natürlich
sagen, 5 plus 7 plus 7 plus 7 plus 7.
Das ist alles korrekt.
Ist immer die gleiche Zahl.
Aber wir wollen die Zahl interpretieren in dem Bereich, den wir uns
gerade vorgegeben haben.
Zwischen –3 und 3.
Also 5 würde außerhalb des Bereichs liegen.
Wir können das übrigens auch nochmal anders herleiten.
Wir können auch sagen, ZEK, das wäre 2 hoch 3 minus 1 minus 2.
Das wäre natürlich auch 7 minus 2 und 5 im Zehner-System.
Das heißt, wir würden also den Bereich verlassen.
Also, was müssen wir tun?
Das Einer-Komplement jetzt korrekt interpretiert.
Das müssen wir also tun.
Wir müssen in dem Bereich bleiben.
Das heißt also, wir sagen, das ZEK, das wäre jetzt 1 mal 2 hoch 2 plus
0 mal 2 hoch 1 plus 1 mal 2 hoch 0.
Und jetzt rechne ich aber in den Bereich runter, in dem ich gerne sein
möchte, minus einmal, weil wir gesagt haben, das ist die Null.
Ich darf jetzt ja Null abziehen.
Ich darf Null addieren, ich darf Null abziehen.
Und 2 hoch 3 minus 1 ist in dem fixen Zahlenbereich, den ich
betrachte, mit der Anzahl von Bits entspricht das der Null.
Also 2 hoch 3 minus 1, 7 ist die Null.
Ich darf also 7 abziehen.
Und dann kann ich das Ganze jetzt ganz geschickt umschreiben.
Und ich hoffe, Sie sehen die Eleganz des Ganzen.
Sonst bitte fragen.
Ich kann nämlich jetzt sagen, das ist 1 mal 2 hoch 2 plus 0 mal 2 hoch
1 plus 1 mal 2 hoch 0 minus.
Und jetzt einmal und jetzt schreibe ich hinten 2 mal 2 hoch 2 minus 1.
Und jetzt kann ich im Prinzip hier zusammenfassen.
Ich kann die beiden zusammenfassen und komme dann genau auf die
Formel, die wir gerade hergeleitet haben.
Das heißt, diese Modulorechnung führt jetzt wieder auf genau die
gleiche Formel, die wir gerade gemacht haben.
Das heißt also, wir haben dann minus in Klammern 2 hoch 2 minus 1 plus
0 mal 2 hoch 1 plus 1 mal 2 hoch 0.
Und das ist genau diese Formel, die wir gerade hergeleitet haben für
die Definition der negativen Zahl.
Wenn das erste Bit 1 ist, wie es hier der Fall ist, dann muss ich hier
sozusagen wirklich diese Zahl mit reinnehmen.
Also minus 3, weil das ja die Pontence ausmacht auf dem Zahlenstrahl.
Und das ist dann minus 3 plus 0 plus 1 und das ist dann minus 2.
Ich hoffe, das ist Ihnen klar.
Also alle, die noch vor zehn Minuten behauptet haben, negative Zahlen
sind trivial, haben hoffentlich jetzt verstanden, so trivial ist es
gar nicht.
Wir müssen also diese Modulorechnung machen.
Das heißt also, wir rechnen das Ganze aus.
Erstmal als positive Zahl, verlassen damit den Zahlenbereich.
Den können wir beliebig weit verlassen, weil es eine Modulorechnung
ist.
Rechnen dann aber wieder zurück in den Bereich, der uns interessiert.
Formen das Ganze um und kommen damit genau auf diese Rechnung, die uns
in diesem Zahlenstrahl, der ja modulo angeordnet ist, ja sozusagen
zwischen den positiven Zahlen und den negativen Zahlen hin- und
herschiebt.
Und genau das kommt auch hier wieder raus, dieser entsprechende
Ausdruck.
Ist das klar?
Okay, gut.
Dann würde ich sagen, ja, einer Kompliment hat den Vorteil, ist
symmetrisch.
Schön.
Hat den Vorteil gegenüber der Darstellung mit Vorzeichenbit, wir
müssen nicht mehr gesondert, haben wir ja gerade gesehen, wir können
also ZEK plus Z gibt null, wenn ich sie addiere.
Das ist ja schon mal nicht schlecht.
Das heißt, wir müssen also keine Fallunterscheidung machen.
Aber es gibt weiterhin zwei Darstellungen der Null.
Das ist nicht schön.
Das heißt also, wir haben eine Redundanz drin, die wollen wir
eigentlich loswerden.
Also, wir wollen im Prinzip diesen Nachteil jetzt erreichen, indem wir
das sogenannte Zweierkomplement verwenden.
Und das Zweierkomplement ist genau das Einerkomplement, in dem wir
aber nochmal plus 1 rechnen.
Das heißt, alles was wir gerade gemacht haben, Sie erinnern sich an
dieses 2 hoch N plus 1 minus 1 oder 2 hoch N minus 1.
Addieren wir jeweils eine 1 und das heißt, wir haben dann 2 hoch N
plus 1 und 2 hoch N, um sozusagen die Null zu differenzieren und
sozusagen zwischen diesen Pendants auf dem Zahlenstrahl hin und her zu
rechnen.
Das heißt also, wir addieren einfach noch eine 1 dazu, bekommen so das
Zweierkomplement.
Also Z, Zweierkomplement plus Z gibt 2 hoch N plus 1.
Ich glaube, da müssen wir nicht lange diskutieren, das ist jetzt
offensichtlich.
Und die Komplementbildung ist ziemlich simpel.
Wir bilden sozusagen einfach wieder, wir torkeln einfach und addieren
dann eine 1.
Und bei allen Nullern gibt es natürlich wieder sowas.
Und wir sehen das jetzt hier ganz schön.
Die Null wird alles getoggelt, dann eine 1 addiert und so weiter.
Und wir bekommen jetzt einen asymmetrischen Zahlenbereich.
Das ist der einzige Nachteil.
Das heißt, bei kleinen Zahlenbereichen, das Asymmetrische stört dann
etwas.
Aber wenn wir jetzt große Zahlenbereiche anschauen, ist es auch nicht
so schlimm.
Bei 32 Bit macht das natürlich keinen Unterschied mehr.
Da ist es eigentlich ziemlich egal.
Wichtig ist nur, dass wir die Null eindeutig behandeln.
Also es gibt eine Null und hier geht es dann gleich mit der Minus 1
los.
Also das ist sozusagen der kleine Nachteil, aber es ist kein Problem.
Und jetzt sehen Sie hier auch wieder, dass wir sozusagen diesen
Zahlenstrahl haben, der jetzt auch wieder Modulo verläuft.
Und mit dem gleichen Trick wie gerade, nur es ist eben jetzt 2 hoch N
und 2 hoch N plus 1, mit dem wir sozusagen um diesen Zahlenstrahl
herumlaufen.
Also alle negativen Zahlen werden jetzt um 1 verschoben, klar.
Das MSB bleibt aber gleich 1.
Aus der ersten Stelle kann ich wieder das Vorzeichen ablesen.
Und die Bitfolge hat jetzt folgenden Dezimalwert, genau aus dem 1er
-Komplement abgelesen.
Beim 1er-Komplement addiere ich jetzt hier sozusagen plus 1.
Das heißt, ich muss minus ZN mal 2 hoch N rechnen und dann die
restlichen Ziffern aufaddieren.
Und damit bekomme ich genau diesen entsprechenden Dezimalwert, ja hier
zum Beispiel minus 3.
Und das Schöne ist jetzt natürlich im Vergleich zu Betrag und
Vorzeichen, dass ich hier jetzt einfach beliebig 1er anhängen kann.
Das heißt, wenn ich jetzt von 32 Bit auf 64 oder 128 Bit gehe, dann
schiebe ich einfach 1er nach.
Ja, und das macht das Ganze super trivial und für den Rechner extrem
einfach zu behandeln.
Das heißt, natürlich wird ein Rechner immer nur im 2-Komplement
rechnen.
Gerade bei Festkommazahlen wird das alles im 2-Komplement gerechnet.
Bei jetzt hier N gleich 31 sehen wir das hier.
Wir haben also jetzt hier zum Beispiel die 2 dargestellt, die 1
dargestellt, die 0, dann die minus 1.
Sehen Sie also ganz schön, das ist also die minus 1, die minus 2, hier
haben wir hier eine 0 stehen.
Das ist also alles ganz dual zu der entsprechenden positiven
Darstellung.
Dann haben wir hier minus 2 hoch 31, das ist der größte negative Wert,
den wir darstellen können.
Und dann ist das hier und dann 2 hoch 31 minus 1.
Es ist ja nicht symmetrisch, haben wir ja gerade gesagt.
Also der größte positive Wert ist 2 hoch 31 minus 1, der kleinste ist
minus 2 hoch 31.
Das wäre sozusagen dann der entsprechende, weil wir hier eine 0 haben,
wäre der größte positive Wert.
Und genau, soweit erstmal Fragen, dass wir die negativen Zahlen auf
jeden Fall heute abschließen können.
Und dann, wenn wir jetzt mal überlegen, wir wollen die Zahl minus 77
mit 8 Bit darstellen, dann sagen wir erstmal die positive Zahl 77, die
wäre so dargestellt.
Jetzt kann ich natürlich mit Betrag und Vorzeichen, könnte ich im
Prinzip einfach sagen, die minus 77 ist einfach 1.
Aber das ist etwas, was unüblich ist bei einer Festkommazahl.
Dann könnte ich jetzt im Prinzip, ich schreibe das mal hin.
Ich glaube, hier muss ich ein bisschen was ergänzen, handschriftlich.
Das wäre jetzt das Einerkomplement.
Das heißt, ich bilde hier das entsprechende Einerkomplement, addiere
dann noch die 1, bekomme hier natürlich, indem ich hier noch 1
addiere, bekomme ich diese Zahl.
Das wäre das entsprechende Zweierkomplement.
Und was kann ich jetzt alternativ machen?
Alternativ kann ich jetzt Folgendes machen.
Ich kann jetzt sagen, dadurch, dass ich verstanden habe, dass wir hier
Modulo rechnen, kann ich ja sagen, das Alternativ...
Ja,
sagen Sie es mir.
Wie kann ich noch auf diese Zahl kommen?
Wenn ich ja weiß, dass ich eine Modulorechnung durchführe.
Minus 77, wie kann ich das noch darstellen?
Indem ich diese Definition betrachte.
Was kann ich tun?
Es ist zu trivial, unterfordere ich sie oder ist es zu kompliziert?
Was kann ich tun?
Wenn ich Modulo rechne, dann kann ich doch die nächste positive Zahl
anschauen und die muss den gleichen Dualwert haben, muss die gleiche
Dualdarstellung haben.
Und welche wäre denn das?
Ich muss jetzt doch einfach nur noch plus 256 rechnen.
Also wenn ich minus 77, plus 256 oder plus 2 mal 256 oder plus 3 mal
256, das ist eigentlich egal, weil ich ja in diesem festen
Zahlenbereich bleibe.
Ich verändere meine Repräsentation nicht.
Und wenn ich das tue, dann kann ich doch jetzt einfach sagen, und ich
glaube, das ist der Clou dabei, dass man das versteht, ich kann jetzt
also sagen, dass minus 77 plus 256, das gibt jetzt 179 und das muss
die gleiche Repräsentation haben.
Das hat also auch wieder 10110011.
Ja, M2, das ist 10.
Das ist sozusagen alles hier 10.
Und damit kann ich im Prinzip jetzt beliebig weit gehen.
Jetzt kann die Frage natürlich von Ihnen sein, okay, wenn ich jetzt
aber zehnmal das Ganze mache, dann wird doch meine Zahl länger.
Ja, der Witz ist aber, ich bleibe ja in dem Bereich.
Ich möchte ja meine Zahl nur mit diesen Bitstellen darstellen.
Und deswegen funktioniert das.
Das kann also wirklich immer im Kreis laufen.
Und deswegen kann ich sozusagen auch wieder zurücklaufen und kann
sozusagen in meinem Bereich bleiben.
Und mein Bereich ist ja jetzt dann hier eben, dass ich in den
negativen Zahlen bin, also von minus 127 bis 128, da möchte ich drin
bleiben.
Und deswegen diese Repräsentation.
Ist das klar?
Gibt es noch Fragen dazu?
Sie fragen wenig heute.
Okay, dann gehen wir nochmal ein Stück weiter, dass wir das heute
wirklich abschließen.
Ja, dann gibt es noch diese Offset-Dual-Darstellung.
Ja, das heißt, ich möchte mir eine Charakteristik darstellen.
Das ist ja ziemlich klar.
Das heißt also, ich möchte das vor allem für Gleitkommazahlen
verwenden.
Charakteristik bedeutet, ich möchte eigentlich von 000 bis 111 gehen
zum Beispiel, also bei drei Bit.
Und ich möchte im Prinzip dann umrechnen auf den tatsächlichen
Exponenten.
Und der gesamte Zahlenbereich, der wird jetzt so verschoben, dass wir
also als kleinste negative Zahl die Darstellung 000 haben und als
größte dann eben 111.
Und bei N-Stellen haben wir als Offset 2 auch N-1.
Und der Zahlenbereich ist natürlich auch asymmetrisch.
Das werden wir noch sehen.
Da können wir uns jetzt mal hier anschauen, wie es denn aussieht.
Betrag und Vorzeichen, da können wir die minus 4 gar nicht darstellen
bei drei Bit.
Und wir haben hier sozusagen diese Darstellung und wir haben die 0
doppelt dargestellt.
Einer Kompliment, 0 auch doppelt dargestellt.
Und beim Zweikompliment haben wir sozusagen alles eindeutig
dargestellt.
Und bei der Charakteristik gehen wir jetzt von 000 bis 111 und müssen
dann entsprechend umrechnen auf den Wert, den wir wirklich haben
möchten.
Ich glaube, damit sind wir auch durch für heute.
Vielen Dank und dann sehen wir uns am nächsten Montag.
Danke, tschüss.