Ja, also heute in etwas anderem Hörsaal ist aber dieses Semester dann soweit mir bekannt,
auch die einzige Ausnahme, wo wir noch mal irgendwo umziehen. Ja,
ich werde heute in dem, nachdem ich jetzt also noch mal Zahlen,
Zahlendarstellungen ja nun letzte Woche abgeschlossen hatte,
ein bisschen was zu Zeichen und Zeichensatzkodierungen sagen,
wobei er das auch so ein Kapitel ist,
wo ich also eher sagen würde, das ist etwas,
was man typischerweise als Informatiker wissen muss, wissen sollte,
im Hinterkopf haben sollte, auch gerade so ein bisschen,
wenn ich jetzt das auf einige Sachen eingehe,
welche Probleme es da geben könnte.
Wenn da jetzt sowas wie Zeichensatztabellen drin sind und so weiter,
logischerweise, das muss nicht zwingend gelernt werden
oder ist nicht jetzt Inhalt von irgendwelchen Abfragen in Prüfungen.
Eine Frage. Kann ich versuchen, in der Hoffnung,
dass sich das jetzt auch irgendwie hinkriege,
dass man das Bild da hinkriegt
Haben wir nicht? Tja, so wie das aussieht,
wird das ohne zusätzliche Gerätschaft wohl nichts,
weil die Tschüss
Ja, so wie man sieht, die Monitore sind an,
ohne VGR-Splitter kriege ich dardings kein Signal drauf.
Also von daher tut es mir leid,
müssten sie dann entsprechend etwas zusammenrutschen, sagen wir mal,
ganz überbelegt sind, weil nun nicht.
Von daher wird das, denke ich mir,
dann schon entsprechend so hinhauen.
Gut,
also heute Zeichen und Zeichensatzkodierung
Erstmal generell nochmal so ein paar Begriffe als Wiederholung.
Die hatte ich eigentlich schon kurz vorgestellt. Und dann werde
ich noch so ein bisschen was zu einigen Kodierungen sagen.
Wie gesagt, wenn da jetzt also irgendwie Aski-Code des Morsalal-Alphabets
sonstiges, muss man jetzt also nicht zwingend auswendig lernen.
Was ich eingangs ja schon vorgestellt hatte,
also erstmal so grundsätzlich diese Definition, was sind Zeichen?
Das, was uns jetzt natürlich immer interessiert, sind dann Binärzeichen.
Das heißt also Zeichen, die dann also irgendwie aus einer
Menge mit einem Vorort von genau zwei Werten gebildet werden.
Dann hatten wir noch einen numerischen Zeichensatz, Alphanumerischen Zagensatz.
Nicht dann, wenn über den Zeichen eine Ordnung definiert ist,
wäre das eben ein Alphabet und so weiter.
Gut, ja, Zeichen zur Übermittlung von irgendwie Informationen sind natürlich nichts Neues.
Nicht, da gibt das also schon seit frühester Zeit,
also irgendwie sowas wie Flaggensignale, heutzutage eigentlich nur irgendwie in der Schifffahrt,
also wer Sportschiffer ist, wird sowas kennen, auch noch irgendwo üblich.
Dann fahre ich ihn jetzt wirklich in dem Sinne jetzt als spezielle Darstellung,
hatten wir dann also noch im Prinzip in der Blindenschrift mit drin,
wo dann eben nochmal entsprechend was speziell kodiert ist.
Und ansonsten, weil das ist etwas,
was uns dann nachher nochmal bei der Kodierung kurz begegnen wird,
war es ja auch schon vergleichsweise alt ist, also war es wie der Morsekot.
Wie gesagt, hier von dem Morsekot-Code-Tabelle einmal,
also irgendwie so die üblichen Zeichen irgendwie aufgelistet,
was man da dann eben auch schon sieht, ist,
dass auch dort nehmen Standardzeichen dann eben noch sowas wie,
ich sag mal, sowas wie Steuerzeichen mit drin sind, nicht?
Also sprich, wenn irgendwie die Gegenstelle jetzt zu schnell muss und ich das also nicht verstehe,
dann kann ich dann also irgendwie sowas wie so ein Error zurücktickern und dann kann er das hoffentlich nochmal entsprechend wiederholen.
Morsecode ist jetzt eigentlich deswegen interessant, weil das jetzt eben ein Code ist,
wo die Kodierung so gewählt ist, dass man möglichst kurze Kotwörter bekommt.
Das heißt, Zeichen, die jetzt häufiger vorkommen,
also sprich die typischen Buchstaben, jetzt A-E-E-I-E-I-I-I-I-I-I-E-U,
sprich die Vokale sind eben entsprechend kurz kodiert,
während Zeichen, die jetzt also seltener vorkommen,
sprich Y,
Z,
haben dann eben einen
entsprechend längeren Code
Dadurch erreicht man dann eben im Prinzip, dass insgesamt,
wenn ich jetzt eben normalen, natürlich sprachlichen Text habe,
wo ich eben genau auch diese Ungleichverteilung in der Häufigkeit mit drin habe,
dass ich dann eben quasi besonders effizient in der Übertragung bin,
also sprich mit entsprechend wenig gesendeten Zeichen, meine Informationen dann entsprechend rüber bekomme.
Das ist also letztendlich der Vorteil, der sich da bei der Kodierung ergibt.
Nachteil ist eben, dass man sagen muss, na gut,
wenn ich also hier irgendwie sowas wie so ein Codewort empfange,
also sprich irgendwie hier fünf kurze, ein langes und wieder ein kurzes Signal.
Dann kann ich mir jetzt,
also wenn ich hier also einige von den Codierungen mir nehme,
sagen, ja gut, das sind hier vorne also irgendwie fünf Es und dann ähnen,
das kann aber eben auch ein E-E-E-E-E, was weiß ich was sein.
Also das heißt, der Code selber ist,
wenn ich das jetzt erstmal so übermittle, überhaupt nicht eindeutig,
sondern das, was man da dann eben logischerweise machen muss,
beziehungsweise was dann gemacht wird,
wenn das irgendwie mal so gut gesendet wird, zum einen,
dass nach einem Zeichen dann quasi einfach mal eine etwas längere Pause erfolgt,
dass man das dann so ein bisschen einordnen kann,
beziehungsweise, dass auch wieder Kontextwissen im Prinzip dann klar ist,
welche Worte irgendwo Sinn machen,
nicht dass man da dann eben versuchen würde,
dann eben entsprechend jetzt was Sinnvolles aus dem Code
rauszufinden und da jetzt nicht aus irgendwelchen Kauderwelsch rausbekommt
Dargestellt ist das Ganze dann immer in Formsinness. Baums,
das freut den Informatiker dann wieder,
wo man dann eben sagt, wunderbar, wie näherer Baum.
Ich habe hier also quasi mein kurzes Zeichen, also hier mein langes Zeichen.
Und wenn ich jetzt also irgendwie ein Wort anfange oder sowas habe,
würde ich dann eben quasi einfach entsprechend hier verzweigen,
je nachdem,
was ich dann also quasi empfange und dann lande ich eben
hier bei einem Knoten oder bei einem Blatt
und kann dann eben entsprechend sagen,
welches Zeichen das
gewesen sein soll
Gut, das war's. Wie gesagt,
das wird uns dann später noch ein bisschen bei der Codierung und Codierungstheorie begegnen,
weil da eben noch ein paar Eigenschaften dann also auch schon mit drin sind,
die wir dort dann also noch mal kurz kennenlernen werden,
beziehungsweise die dann eben für die Informatik natürlich auch interessant sind,
weil auch da habe ich natürlich die Sache,
dass wenn ich weiß, das sind nicht alle Zeichen gleich wahrscheinlich,
möchte ich natürlich gerade im Sinne der Datenübermittlung und effizient möglichst schnell möglichst viele Daten übertragen,
dann eben auch irgendwie sowas haben wie eine bestimmte Codierung,
wo ich dann jetzt wenig Zeit verschenke, beziehungsweise entsprechend schnell,
also mit genau solchen Tricks dann also letztendlich arbeiten kann.
Gut, wird das andere, wie gesagt, später noch begegnen? Jetzt so die üblichen Standard-Codes,
da gehst du mit einer der Ältesten und das,
was man immer so kennt, ist als Asky abgekürzt,
steht dann für American Standard-Code for Information interchange,
wurde Anfang der, oder Mitte der 60er Jahre im Prinzip eingeführt,
war eigentlich dann die ganze Zeit lang,
also eigentlich immer der Standard-Code vor dieser Zeit war es eben so,
dass eigentlich die Computerhersteller, ähnlich wie ich das,
also bei den Zahndarstellungen, also auch schon erläutert hatte,
dann also jeder da irgendwie sein eigenes Süppchen gekocht hat und der eine hat eben die Zeichen so kodiert,
der andere hat die so kodiert und wenn man jetzt irgendwelche Informationen zwischen unterschiedlichen Maschinen austauschen wollte,
brauchte man dann eben entweder Konvertierungsprogramme oder musste das dann entsprechend umständlich dann machen.
Ja, Aski-Code ist, geht eigentlich auch noch weiter zurück,
eher auf alte Fernschreiber kurz, womit man also im Prinzip
dann solche Doch Kartenfernschreiber, dann also auch mit bedient hatte.
Wird kodiert mit sieben Bit, wie wir gelernt haben,
mit sieben Bit, kann ich also zwei hoch sieben Zeichen kodieren, also sprich 128 Zeichen.
Darin sind dann eben enthalten die 95 Druckbuanzeichen, also sprich Buchstabenziffern,
Sonderzeichen, Satzzeichen und so weiter und dann eben noch einen ganzen Satz von Steuerzeichen,
der also eben benutzt wird, um zum Beispiel zu sagen,
hier beginnt die Information, hier endet die Information,
wenn ich das jetzt grafisch aufbereitet,
beziehungsweise mir das also wie so eine Textdatei vorstelle,
dass man dann eben sagt, worauf ich ein Zeilenumbruch,
auch das wird dort also entsprechend alles mit kodiert.
Askiko-Tabelle, hier also quasi einmal aus der Wikipedia rausgesucht,
sieht dann eben typischerweise so aus,
dass das Ganze quasi so zweidimensional angeordnet ist mit den 128 Zeichen,
beginnt ab hier, SP steht dann für Space,
also das Leerzeichen, habe mich dann also hier die ganzen Druckbahnzeichen,
also sprich Großbuchstaben,
Kleinbuchstaben und dann eben bis hier zu der Tilde.
Und Steuerzeichen sind dann eben entsprechend Diese 32 hier und das löscht Zeichen,
um jetzt also quasi ein eingegebenes Zeichen wieder zurückzunehmen.
Die Kodierung selber ist hier so beschrieben, dass man sagt,
hier habe ich also quasi drei Bit in Oktaldarstellung.
Das sind die oberen drei Bit vom Asky-Code.
Hier habe ich dann vier Bit in Hexadezimaldarstellung. Das heißt,
wenn ich wissen möchte, wie zum Beispiel jetzt ein großes Gekodiert ist,
wäre das dann eben hier abzulesen als vier, sieben.
Und demzufolge
0, 1, 1, 1, dann ebenentsprechend dann der komplette 7-Bit-Asky-Code für das Zeichen. Was dann danach kam,
historisch gesehen, waren dann die ganzen ISO 8,
1859-Zeichen-Sätze, die dann eben auch entsprechend als internationaler Standard,
also ISO steht dann für International Standard Organization, beschrieben worden sind,
wo man dann eben diesen Asky-Code dann eben noch um Sonderzeichen und umlaute erweitert hat und daraus dann eben eine 8-Bit-Codierung gemacht hat,
womit ich dann also letztendlich 256 Zeichen darstellen kann,
weil das, was man hier natürlich schon sieht,
beispielsweise, also hier jetzt bei uns, die deutschen Umlaute,
sind hier erst mal nicht weiter vorhanden.
Mit 256 Zeichen komme ich natürlich jetzt also auch nur bedingt weit,
das heißt, das, was man dort dann gemacht hat,
ist, dass man also von diesen ISO-Zeichensatzkodierungen dann eben einen ganzen Satz definiert hatte,
nämlich einmal Westeuropäisch, mitteleuropäisch, südeuropäisch und so weiter.
Das heißt, in dem Latin-1-Zeichensatz habe ich dann eben
beispielsweise die ganzen bei uns gebräuchlichen Umlaute und das SZ
mit drin
In dem südeuropäischen Zeichensatz beispielsweise habe ich sowas wie ein SZ nicht,
aber dafür dann also noch deutlich mehr,
dann sowas wie, jetzt zum Beispiel aus dem Schwanischen,
also irgendwie die CD mit drin, nicht dann die französischen Akzente,
Axentegu, Axenograph und so weiter,
dass die da dann eben immer in den entsprechenden Zeichen setzen mit drin sind.
Nicht dadurch kann ich dann also innerhalb eines Sprachraums
natürlich also erstmal mein Dokument irgendwo mit eingeben,
was man damit natürlich immer noch nicht machen kann,
ist jetzt wirklich sowas wie mehrsprachige Dokumente
Machen. Weil das ist dann eben auch das Problem.
Also ich habe das jetzt mit ISO 888591 irgendwie beschrieben,
habe jetzt also meinen Code,
schicke den jetzt also an irgendeinen Kollegen in Spanien und der
wird da dann eben entsprechende Probleme haben an den Stellen,
wo ich jetzt also quasi in Deutschland, also die Umlaute finde,
hat der dann also entsprechend ganz andere Zeichen.
Und dann wird das dann also auch zu gewissen Problemen führen.
Da ist die Code-Tabelle eben so aufgebaut, dass man sagen kann,
also hier ist jetzt also ISO 8889 591,
Dieser Tal hier entspricht eigentlich genau dem Asky-Code, den ich vorher schon hatte.
Also beginnt mit einem Leerzeichen dann eben bis zur Tilde.
Nicht, das heißt also, dieser gesamte obere Teil,
das sind eben die sieben Bit, die man eigentlich beim Asky-Code hatte.
Und hier sind dann eben die jeweiligen Erweiterungen für die entsprechenden Sprachen dann noch mit hinzugefügt.
Also sprich, das war es in diesem Fall,
was wir hier dann eben so typischerweise an, umlauten, beziehungsweise nach einigen Sonderzeichen haben.
So, und was diese Kurzs dann noch alle gemeinsam haben,
sind dann eben letztendlich diese gesamten Steuerzeichen,
die sie dann wirklich bei all diesen ISO 88, 59 Kurz letztendlich identisch.
Gut, andere Co-Tabellen, also hier wäre dann 8859,
2, also für slawische Sprachen, wo man sieht,
also dieser Teil ist gleich, Steuerzeichen sind gleich nicht,
aber hier habe ich dann eben entsprechend andere Zeichen,
wie also beispielsweise, also dies Z mit den entsprechenden Achselenten,
die wir hier zum Beispiel bei uns also nicht mit drin haben.
Also das weiche D und Seuchszeichen. Die letzte Erweiterung von dem ISO 8859-Code,
die dann gekommen ist, war also ISO 81859, 15,
wo dann unter anderem also das Euro-Zeich noch mit reingekommen ist.
Da sieht man, also das ist inzwischen also auch schon
quasi 20 Jahre alt
Zu unserer Zeit, als das dann mit dem Euro letztendlich losging.
Ein anderer auch sehr verbreiteter Zeichensatz, eben auch bis letztendlich
sogar in die 2010er Jahre, waren dann also immer diese Microsoft-Code-Pages.
Auch da muss man sagen, da war es halt eben so,
dass in diesem Fall jetzt der Softwarehersteller Microsoft,
also quasi in einem Betriebssystem Windows, das dann eben,
beziehungsweise damals noch Doss,
das dann letztendlich mit drin hatte,
dass dort eben die entsprechenden Zeichensatzkodierungen mit drin waren
Da gab es dann also unterschiedliche, je nach Sprachraum,
also die dann also einmal als Codepage bezeichnet wurden.
Das war dann eben auch so eine Asky-Erweiterung, um so ein 8-Bit-Code,
der dann unter anderem dann eben auch noch so was wie irgendwelche Grafiksymbole hatte.
Auch das etwas, was heutzutage natürlich, Gelinde gesagt,
sehr vorsinnflutlich anmerkt, Grafiksymbole sind also hier diese Sachen.
Kommt eigentlich auch noch aus der Zeit,
bevor es letztendlich mit irgendwo grafischen Oberflächen losging,
das heißt also noch vor dem ersten Windows und man eben
wirklich nur sowas wie eine textbasierte Oberfläche, Kommandozeile hatte.
Und Programme, die dann eben sowas wie Eingabemasken gemacht haben oder irgendwelche,
sag ich mal, irgendwelche Aufklapp-Informationen und so weiter,
haben das also letztendlich damit gemacht,
dass ich eigentlich immer nur Text gemacht habe und dann aber
eben an entsprechenden Stellen im Text dann eben diese Zeichen mit drin waren.
Und dadurch, dass ich die dann eben quasi zahlenweise übereinandergesetzt habe,
konnte man dann also sowas wie einen Rahmen um so eine Eingabemaske zeichnen.
Also das dann eigentlich auch noch so, dass,
also letztendlich ganz am Anfang, bevor eben wirklich grafische Oberflächen aufgekommen sind,
man sich damit dann eben beholfen hat und dann im Prinzip in den Anwendungen Sowas wie so Asky-Art gemacht hat.
Gut, wenn ich jetzt diese Zeichen oder Zeichensatzformate habe,
habe ich natürlich das Problem, was passiert,
wenn ich jetzt also Text oder Informationen zwischen verschiedenen Rechnern austausche.
Was man da eben schon gesehen hat, ist,
dass die meisten dieser Zeichensatzformate so ein bisschen kompatibel mit Asky sind.
Das heißt, solange ich mich jetzt also nur auf die reinen lateinischen Buchstaben verlasse,
habe ich da also letztendlich erst mal kein Problem.
Bei Umlauten wird das dann aber schon schwierig, bei Sonderzeichen genauso.
Und was dann eben auch noch mit hinzukommt,
Und was heutzutage auch immer noch so ist,
dass man also letztendlich bei der Kodierung von beispielsweise Zahlen enden in Textdateien, also entsprechend unterschiedlich verfährt.
Weil das ist also dann nämlich abhängig vom Rechner beziehungsweise vom Betriebssystem,
nicht wo man sagen kann, früher war es halt eben so,
dass, beziehungsweise jetzt auch noch im Prinzip bei unixartigen Betriebssystemen,
ich in Aski-Zeichensatz habe und das Zeilenende kodiert ist als ein Dein Feed,
das heißt, ich springe in die nächste Zeile,
das damit aber implizit eigentlich mit drin war.
Ich gehe auch noch wieder an den Anfang der Zeile zurück.
Bei Windows war das dann eben so,
dass es Carriage Returnline Feed war, also dies Carriage Return,
das Line Feed muss man sich eben auch noch vorstellen aus der Zeit.
Arzt das Ganze eigentlich auf die Steuerung eines Fernschreibers ging,
also sprich einer elektrischen Schreibmaschine, wo ich gesagt habe,
okay, Cabridge Return heißt,
ich habe irgendwo hin geschrieben und ich fahre den Wagen wieder zurück und Line Feed heißt,
ich gehe in die nächste Zeile.
Das heißt, also konsequenterweise ist sowas eigentlich richtiger. Wie gesagt,
bei unixartigen Betriebssystemen habe ich aber eben nur einen Line Feed. Führt eben auch dazu,
dass wenn ich eben solche Texte so habe und so kodiert habe und die jetzt beispielsweise von Windows-Rechner in Linux-Rechner reinbringe,
ich dann also den Effekt habe,
dass ich in der Regel wird,
dass es bei Linux-Systemen dann eben auch irgendwie normal Zahlen umbohrt,
dass man da dann eben auf einmal irgendwie nochmal eine zusätzliche Leerzeile mit drin hatte.
War zumindest früher so. Wie gesagt,
inzwischen wird das dann in der Regel auch immer erkannt,
beziehungsweise bei dem Transfer zwischen dem System wird das dann also quasi mit angeglichen.
Früher war es noch so, also quasi beim alten Mac-OS-System,
also sprich das, womit Apple mal angefangen hat,
da war das Ganze dann eben nur über einen Carrish Return codiert.
Also wie man dann sagt, da gibt es eben wirklich
sehr viele sehr unterschiedliche Codierungen. Nicht dieses IX-Operating-System oder Operating-System 390,
das war dann also ein ganz anderer Zeichensatz,
wobei der also auch in sehr vielen unterschiedlichen Standards vorhanden ist,
also dieser IBC,
D-I-C-C-Zeichensatz,
wo das dann eben wieder über einen ganz anders codiertes Zeichen
gemacht worden ist
Gut, jedenfalls, also das zeigt eigentlich, dass da immer so ein bisschen das Problem gibt,
wie tausche ich Text jetzt entsprechend zwischen verschiedenen Rechnersystemen aus, was passiert da. So,
und das, was man eigentlich haben möchte,
ist also irgendwie eine Art von Kodierung, die universell ist,
die universell funktioniert, wo ich dann auch sagen kann,
ich habe jetzt nicht nur sowas wie diese komischen Codepages,
wo ich dann zwar vielleicht jetzt also meine Umlaute drin habe,
aber wenn ich dann in dem Text also auf einmal irgendwie jetzt beispielsweise auf Korrillisch umschalten möchte,
das eben nicht machen kann,
weil ich die Zeichen dort gar nicht zur Verfügung habe.
Das heißt, das, was man dann eigentlich machen möchte,
eben gerade im Zuge von der Internationalisierung, dem Datenaustausch,
dass man eben sagen kann, um mehrsprachige Dokumente zu machen,
um eben auch jetzt noch weiter wegliegende Sprachen quasi behandeln zu können,
erreichen,
also quasi diese ganzen Ansätze selbst mit diesem ISO nicht aus.
Nicht da gab es nochmal sowas, wo man dann quasi
über so einen Standard, also zwischen unterschiedlichen Code-Pages umschalten konnte,
aber auch das ist also relativ brotlose Kunst gewesen.
Deswegen gibt es etwas, was sich dann Unicode nennt,
was es eben im Prinzip eine Zeichensatzkodierung, die dafür sorgt,
dass man möglichst viele Zeichen von Schriften, Gemeinsam hat und die eben gemeinsam benutzen kann.
Fing erstmal nur mit den gängigen Sprachen an,
ist inzwischen so,
dass es also im Unicode eben auch noch beliebige Kodierungen für
nicht nur vorhandene Sprachen gibt,
dass es dort Kodierungen gibt für alle
möglichen Arten von Sonderzeichen,
Stichwort wären sowas wie Emojis. Auch das ist inzwischen also wirklich standardisiert,
ist in diesem Unicord letztendlich mit drin. Ist eben auch einer der Gründe,
weswegen ich jetzt also quasi von einem Smartphone mit Betriebssystem XY
zu irgendeinem anderen Smartphone mit einem vielleicht anderen Betriebssystem,
wo ich dann also, meinetwegen ist das auf beiden,
also irgendwie die gleiche Nachrichten-App habe, dann also irgendwie Daten austauschen kann.
Gut, angefangen hat das Ganze Anfang der 90er Jahre.
Da waren also im Prinzip nur die europäischen und narröstlichen Sprachen
mit drin. Inzwischen Jetzt gerade Mitte dieses Jahres rausgekommen,
der Standard 12.1.0 mit knapp 138.000 Zeichen, die in diesem Unicode-Standard mit drin sind,
wo dann eben sowohl die ganzen Sprachzeichen mit drin sind,
aber eben auch beliebige andere Zeichen, Hieroglyphen,
irgendwelche Symbole, alle Arten von Währungen.
Ich meine, gut, so was wie Dollar und vorne,
das ist nur nichts Neues,
aber jetzt eben auch irgendwie Bitcoin unter anderem mit drin,
wo dann eben auch alle möglichen mathematischen Symbole drin sind
Innenschrift ist da im Prinzip auch mit vorn,
Noten und, und, und,
und eben aktuell auch noch deutlich über 3.000 verschiedene Emojis,
beziehungsweise die sind da ja teilweise auch noch zusammengesetzt.
Das heißt, sie kann sich dann ja auch noch in
politisch korrekt unterschiedlichen Hautfarben beispielsweise dann generieren. Gut,
wie gesagt, das Ganze kann man sich dann also hier
über die entsprechende Webseite da dann alles mal anzeigen lassen,
also was ist da so an unterschiedlichen Zeichen gibt,
also wie gesagt, von irgendwelchen Ostasiatischen Schriften.
Das könnte Termin oder sowas sein, mathematische Symbole, Emojis und, und, und.
Mich ist eigentlich letztendlich alles mit drin und mit vorhanden.
Gut, geschrieben wird das, oder wie wird das Ganze jetzt letztendlich gehandhabt? Ursprünglich war es mal so,
dass man also quasi das Ganze jetzt einfach von der Zeichensatzkodierung her erweitert hat,
nicht also von Usky auf ISO 88859,
hat man gesagt, na gut, Platz sieben bin,
mache ich acht Bit, habe ich doppelt so viele Zeichen.
Nicht, wenn ich jetzt sowieso bei Zweierpotenzen bin,
dann mache ich da draußen dann also gleichmäßigerweise 16 Bit.
Und dann kann ich damit im Prinzip dann 65.535 Zeichen kodieren,
womit man natürlich dann auch nicht mehr oder noch nicht vor dem ist,
was hier ist, sondern irgendwann so um die Nullerjahre herum sind einem da dann nämlich also auch entsprechend die Zeichen ausgegangen.
Unicode selber wird von vielen Programmen oder Betriebssystemen beziehungsweise auch Programmiersprachen, dann also auch immer direkt oder kann direkt benutzt werden. Das heißt,
wenn ich jetzt weiß,
wie jetzt also die Unico-Zeichensatzkodierung von einem Zeichen ist,
könnte ich das jetzt beispielsweise als String in meiner Programmiersprache einfach dadurch einbauen,
dass ich dann eben schreibe,
u plus und dann hier vier Hexziffern habe,
mit denen ich dann also letztendlich die 16-Bit so eines Zeichens eingeben kann,
also beispielsweise in Java wäre das dann backslash u for Unicode
und dann sowas und dann könnte ich dann eben hier
sowas wie ein Omega oder wie ein Euro-Symbol eingeben
Gut, inzwischen hat man natürlich dann also auch eingabemäßig jetzt wieder die Sache,
dass man sagt, okay, über Tastatur, Tastatur,
Treiber wird das Ganze dann eben entsprechend so umgesetzt,
dass sich da das nicht machen kann.
Aber wenn ich beispielsweise eine Tastatur habe,
auf der die Symbole nicht drauf sind oder ich da gar nicht rankomme,
auch da kann ich dann solche Unico-Zeichen letztendlich in meine Programmierung mit reinbringen.
Gut, wie ich schon gesagt habe, mittlerweile hat man
da natürlich deutlich mehr als diese 200 hoch 16 Zeichen.
Das, was man dann gemacht hat, ist,
dass man quasi das Ganze dann eben auch wieder schrittweise erweitert hat über,
um sogenannte Extended Planes,
wo ich dann das noch ein bisschen weiter gemacht habe,
wo man dann eben mehrere von diesen 16 bezeichnen hat oder benutzen kann.
Gut, wo wird sowas unter anderem eben eigentlich auch noch mit benutzt?
Natürlich das, was wir also tagtäglich in der Regel uns angucken. In Webseiten,
also sprich im HTML-Quelltext, wird typischerweise im Header von den HTML-Datanen,
also quasi gesagt, mit welchem Zeichensatz das Ganze dargestellt wird.
Und das, was man heutzutage, hoffe ich zumindest,
am meisten findet oder finden wird,
würde irgendwie sowas sein wie UTF 8,
was dann eben eine spezielle Unicode-Kodierung ist oder Darstellung von Unicode ist,
also auf die ich dann also auch gleich noch zu sprechen komme.
Wenn man sich das ansieht, nette Demo dazu unter Curmet Project Hawk,
UTF 8, da hält man dann nämlich solche Sachen,
wo das also wirklich dann beispielsweise mal mit unterschiedlichen Zeichensätzen
irgendwie dargestellt ist
Wo man dann eben auch sehen, sehr schön immer sehen kann,
welche Schriften und Schriftsätze auf dem eigenen Computer gerade installiert sind.
Das heißt, also hier auf meinem Laptop habe ich also hier die entsprechenden Zeichensatze,
um also zum Beispiel sowas wie Runen darzustellen.
Wenn ich das jetzt nicht installiert habe, mal gucken,
also das haben wir hier auch alles,
Jamil habe ich hier auch
Hier hat man dann zum Beispiel sowas wie Brähschrift.
Also wenn das nicht installiert ist, ich meine,
es gab also irgendwie so ein paar Sachen genau. Hier,
also in einem vien-amesischen Zeichensatz, fehlen mir ein paar Zeichen,
dann sieht man dann eben typischerweise an der Stelle einfach
nur irgendwo so ein quasi mehr oder minder ausgegrauten Kasten,
wo man dann eben sehen kann,
das und das ist.
Also dann also entsprechend auf dem System nicht mehr da.
Nicht das, also wie gesagt, so eine Testseite,
wo dann so ein bisschen so einiges zu sehen zu machen ist,
was da ist.
Ja, von daher also vielleicht mal ganz nett anzusehen,
was auf dem eigenen Rechner da
quasi mit drauf ist
Das sollen es hier nur noch mal das Ganze in Form von irgendwelchen Screenshots, wo man das sieht.
Gut, wie sind die Sionico-Zeichen oder diese Unico-Tabelle typischerweise aufgebaut?
Auch da hat man das dann schlauerweise so,
dass man gesagt hat, also die Zeichen in dem unteren Sieben-Bit-Bereich,
also sprich von Unicode 0 bis 7-7-7-F,
entsprechend eigentlich eins zu eins zum Asky-Code.
Wie so ein Unico-Unicode-Code aufgebaut ist,
kann man sich immer direkt in diesen Charts ansehen,
wo man das Ganze dann also letztendlich dann also hier Haben wir irgendwie runterlesen,
laden kann und dann also in diesen Formen dann als PDF dann,
also letztendlich sieht, welche Zeichen an welchen Stellen sind.
Und damit habe ich dann eigentlich die Beschreibung von dem Ganzen.
Ich hoffe, das ist jetzt die richtige Seite, genau. So,
und hier würde man jetzt zum Beispiel von dem aktuellen Standard
eben entsprechend sehen, welche Sprachen da mit drin sind.
Also wie gesagt, von den ganzen üblichen europäischen Sprachen afrikanisch
Also das ist dann eben jetzt hier nach Sprachräumen entsprechend zusammengefasst.
Was man da eben typischerweise hat, das, was ich
gerade eben gezeigt habe, war also hier Basic Lettin 1.
Das ist dann nämlich genau Unicode 0 bis 711. Dann habe ich hier dann so die Erweiterung,
die dann eben entsprechend damit drin sind,
wenn ich also irgendwie arabisch brauche,
hätte ich da dann eben entsprechend meine Zeichen oder Zeichensätze,
kann nur das dann also auch hier in dem PDF einmal ansehen,
was man dann sich irgendwie an arabischen Zeichen,
also jetzt in dem Standard-Zeichensatz von dem Unicode dann entsprechend mit
drin hat
Gut, das heißt, damit hat man dann eben die Möglichkeit,
also über diese Unicode-Kodierung, dann eben auch wirklich beliebige internationale Dokumente zu machen.
Und ich habe dann eben auch die Möglichkeit, sowas wie griechische Buchstabensymbole mit reinzubringen. Also sprich,
wenn man jetzt irgendwie was Mathematisches eingibt, irgendwelche Formeln eingibt nicht,
also das ist ja nun auch immer so das beliebte Spiel,
wenn ich also irgendwo jetzt an meine Textverarbeitung sitze,
da also irgendwie was schreiben soll,
nicht wie kriege ich dann also irgendwie ein Summenzeichen mit,
so und so irgendwie richtig hin und Nicht für Malays,
also nicht gerade irgendwie in der glücklichen Lage ist,
Tech zu benutzen, dann kämpfen wir da mit irgendwelchen Formel-Editoren,
die Firmen Microsoft da mitliefert oder was auch immer.
Nicht, dann habe ich da dann eben unter Unicode dann eben auch noch irgendwie sowas wie Pfeile,
Operatoren, auch hier irgendwelche anderen Symbole,
die also beispielsweise in Microsoft hat,
also mal diese Dingbartsschrift, das ist dann also etwas,
wo man dann also hier irgendwie so alle möglichen Symbole hat,
um jetzt eben irgendwie so ausschneiden oder sonstiges oder so einen Brief eben irgendwo in seinem Text irgendwo auch mit zu verwenden und das dann entsprechend einzugeben.
Nicht also auch solche, teilweise herstellerspezifischen oder, ja,
Erweiterungen sind dann eben teilweise in dem Unicode letztendlich auch alle mit drin.
Gut, asiatische Sprachen und, und, und. Auch eine Möglichkeit,
sich sowas anzusehen, wie das also beispielsweise jetzt also von aussehen kann,
ist hier auch nur als Beispiel,
wenn man bei der Java-Entwicklungsumgebung die Beispiele mit installiert,
dann finden sich dort unter Demo, JFC,
dieser von 2D-Test, das ist dann so quasi ein Fondviewer,
wo ich dann also quasi hier meine Schrift einstellen kann,
also sprich mal Schriftart und dann eben gucke für diese Schriftart,
welche Zeichen sind hier auf dem Rechner quasi gerade drauf oder gerade installiert.
Auch das kann ich quasi hier einmal kurz starten,
wie gesagt, das ist also im Standard Java,
da muss man jetzt also hier nicht zwingend mit irgendeinem Minux oder Typ Leute irgendwas machen.
Das läuft also unter Windows natürlich genauso und identisch.
Und da kann ich dann also jetzt hier auswählen,
welchen Fond ich hier beispielsweise nehme.
Areal hätte jetzt also hier quasi die Zeichen basic latin.
Das heißt, das ist jetzt also hier entsprechende ganz normale Standard.
Husky-Code, wenn ich das jetzt also hier mal nicht oder
so breit mache, wie es eigentlich sein sollte.
Nicht dann habe ich den hier. So kann dann aber
eben entsprechend hier auch in die ganzen Erweiterungen gehen,
dann griechische Zeichen
Ich bin so diesen Boxstrauer-Dreuing-Symbolen, richtigen Parts, auch diese Schrift.
Gut, die ist hier in diesem Fall jetzt in Areal in dem Fond quasi nicht mit drin.
Da sieht man dann nämlich außer auch jeweils, wenn ich irgendeinen Fond habe,
welche Zeichen dort überhaupt vorhanden sind, ist da dann,
sagen wir mal, auch immer nochmal ganz gut oder interessant eigentlich.
Also jetzt, wenn man das beispielsweise dann also Zum Beispiel jetzt als Webdesigner,
wenn Nords und jetzt also wissen möchte, muss ich dem Kunden,
da jetzt also quasi noch die passende Schrift mitliefern oder ist das in irgendwelchen Standardschriften mit drin?
Also dafür kann sowas dann eben auch noch mit interessant sein. Gut,
wie seht ihr das jetzt mit der Repräsentation aus,
wenn ich jetzt gesagt habe,
ich bleibe jetzt also bei diesem Standard-Basic, Multilingual Plane,
nicht dann habe ich für jedes Zeichen quasi 16-Bit,
kann damit dann ebenentsprechend viele Zeichen direkt adressieren,
habe aber natürlich gegenüber Asky oder diesem ISO-Code Codierung natürlich doppelt einen Speicherplatz bedarf.
Das heißt, wenn ich jetzt irgendwie einen reinen Text habe,
den abspeicher, nicht,
das sind so und so viele hundert Zeichen,
dann baue ich also quasi einen Asky-Code entsprechend 80 Bit im Unicode,
dann eben schon die Doppel-E-Information.
Das heißt, das ist da dann so rumgesehen natürlich ein bisschen unpraktisch.
Irgendwann hatte ich ja gesagt, reichten auch diese Anzahlen der Zeichen,
also diese 16 Bit nicht aus. Das heißt,
da hat man dann eben quasi mehrere solcher Dinger gemacht.
Er hat das dann also jetzt auch wieder erweitert und
nicht dann irgendwann nachher so auf 92 Bit und so weiter
Ist aber natürlich jetzt im Sinne einer effizienten Kodierung von Zeichen unpraktisch,
weil ich da ja auch eben sagen muss, okay,
das, was häufig vorkommt, sind halt erstmal so die Aski-Zeichen,
die lateinischen Buchstaben in groß und klein.
Zahlen, die ich also entsprechend angeben muss.
Steuerzeichen und alles andere ist dann eben vergleichsweise selten,
dass man das in einem Text mal braucht. Deswegen,
um eben zu einer möglichst kleinen Dateigröße zu kommen,
hat man Dann eigentlich etwas gemacht oder angefangen,
was dann eben genau dieses UTF 8 oder UTF 16 ist.
Das ist also quasi jetzt nochmal eine Art und Weise,
wie der Unicode selber in dem Rechner repräsentiert wird.
Und zwar sieht das so aus, dass sich das mit
unterschiedlich lang Codierungen letztendlich mache. Das heißt,
wenn ich jetzt also eine ganz normales Asky-Zeichen habe,
also sprich sowas wie in einzelnen Buchstaben,
Dann ist dort diese UTF8-Kodierung so aufgebaut,
dass da also quasi 8-Bit benutzt werden.
Und ich damit lässt genau den Aski-Zeichen-Satz erschlage. Das heißt also,
dieses Zeichen ist dann auch eins zu eins mit dem Aski-Zeichen-Satz identisch.
Das achte Bit ist in dem Fall dann eine Null.
Das sagt eben, dass ich also quasi hier bin. Wenn ich jetzt Zeichen habe,
die seltener vorkommen, brauche ich dann also entsprechend mehr Bit,
dass wir dann in dem In der Unicode 8-Kodierung dann dadurch beschrieben,
dass sich dann entsprechend zwei, drei oder vier Byte benutze.
Und der Code ist da dann eben so aufgebaut,
dass abhängig davon, wie dieser vordere Teil aussieht,
hier drin quasi kodiert ist, ob jetzt noch,
also sprich, wenn das hier mit zwei Einsen beginnt,
und dann eine Null als Trendzeichen,
dann weiß ich halt,
es kommt jetzt eben hier nochmal so ein Block hinterher
Wo ich dann eben diese 1-0 wieder habe,
um das also hiervon unterscheiden zu können.
Und dann aber im Prinzip an dieser Stelle 5 Bit für mein Zeichen.
Und an dieser Stelle 6 Bit für mein Zeichen überhabe.
Wenn ich jetzt noch mehr brauche, beispielsweise für das Euro-Zeichen,
wird das hier ein 3 Byte kodiert.
Also hier die Anzahl insgesamt dieser Blöcke,
null als Trennzeichen und dann mit 1-0 beziehungsweise 1
-0 oder jeweils in diesem Fall jetzt hier diese nächsten Blöcke.
So, und dadurch kann man dann eben entsprechend sehr viele von oder
eigentlich alle Unico-Zeichen im Prinzip hier darin drunter hiermit unterbringen.
Ich habe für die häufigen Zeichen,
also sprich für die Aski-Zeichen, eine sehr effiziente Kodierung.
Und das ist jetzt nämlich eigentlich das Entscheidende, was also
diesen Code auszeichnet. Also da nehme ich schon mal jetzt
was vorneweg, was dann nachher bei der Kodierung kommt.
Das ist dann nicht mein sogenannter Prefix-freier Code
Das heißt, dadurch, dass ich immer eindeutig bin,
wie hier vorne dieser Anfang aussieht. Das heißt, wenn ich eins,
eins habe und dann eine Null, dann weiß ich eben danach,
die Zeichen kommen dann eben entsprechend weiter und die fangen dann eben alle mit 1-0 an. Das heißt,
wenn ich jetzt in der Datenübertragung irgendwo bin, die Datenübertragung stoppt,
fängt wieder an und ich lande jetzt beispielsweise hier in der Mitte und ich empfange jetzt also quasi als Empfänger,
ab diesem Teil, dass man dann mit diesem Code sagt,
okay, hiermit kann ich erstmal nichts anfangen,
aber spätestens beim nächsten Zeichen weiß ich,
das fängt entweder direkt mit einer Null an oder eben mit so einem Code 1,
1 und dann weiß ich,
wieder jetzt beginnt das wieder hier.
Das heißt, dadurch kann man sich dann eben,
wenn Informationen verloren geht, dann auch in solche Sequenzen wieder rein synchronisieren.
Das ist also im Prinzip ähnlich das,
Woran das jetzt also beim Morse-Code scheitert,
dass sich eben quasi sowas wie eine Trennung,
weil Mäuse-Code müsste ich eben eine künstliche Pause einfügen,
reinbringe, um zu wissen,
ab hier beginnt jetzt wieder ein neues Zeichen,
was dann dargestellt wird.
Denn das erreiche ich eben über diese eindeutige Kodierung.
Wie gesagt, das führt uns dann im übernächsten Kapitel da noch
ein bisschen weiter begehen. So, hier sieht man also,
wie das also im Prinzip jetzt vom Algorithmus her aufgebaut ist,
wenn ich also jetzt nur Einweit habe,
beginnt das also quasi mit null.
Ich habe dann hier sieben Nutzbits, kann damit also 128,
sprich die Aski-Zeichen genau kodieren. Nicht wenn ich Diesen Unicode-Bereich habe,
wird das in zwei Byte gepackt, wo ich dann,
das kann man quasi so aufbaue und dann also hier nochmal 11b zur Verfügung habe.
Wenn ich jetzt also noch mehr Zeichen bräuchte,
wird das dann eben in drei oder im entsprechenden vier Zeichen gebracht.
So, und damit hat man eben zumindest,
wenn ich jetzt also hier bei den vier Byte-Sequenzen bin,
also die Möglichkeiten haben, also bis zwei hoch 21 Zeichen zu codieren.
Also da ist dann noch Platz für zu erfindende Sprachen oder
irgendwelche Emojis, die da noch eingeführt werden,
die ich da dann also noch locker runterbringen könnte
Gut, also die Art und Weise,
wie das Ganze aussieht, ist dann eben letztendlich hier kodiert.
Also wie gesagt, so diese einzelnes Zeichen, Einwahrheit beginnt mit null.
Eine Eins ist dann eben so eine Multibyte-Gruppe und die Anzahl
der Eins sind bis zur nächsten Null, sagt dann eben,
wie viele Barters insgesamt dann eben letztendlich sind.
So, theoretisch könnte ich das jetzt noch erweitern und jetzt sagen,
also hier ist es jetzt also auf vier Byte verteilt.
Ich kann daraus natürlich also auch noch fünf oder sechs Byte machen.
Theoretisch kann man damit dann also bis ins Fach
42 Zeichen kodieren
Gut, also das zu diesen zweiten Einsatzkodierungen. Wie gesagt,
so was wie OTF8 sollte man dann eigentlich grob wissen.
Wie gesagt, Tabellen muss man da jetzt nicht irgendwie auswendig lernen,
nicht aber was sie da hätte verbirgt. Eine andere Sache,
die dann eigentlich auch immer noch so mit reinkommt und die man als Computerbenutzer,
sag ich mal, tagtäglich mehr oder minder hoffentlich gar nicht erlebt,
aber zumindest konfrontiert wird, sind also irgendwelche Spracheinstellungen,
wo man dann eben sagt,
wie sind Beispielsweise jetzt in dem Rechner Menüs beschrieben,
wie werden Zahlen,
Datumsformate gemacht?
Also sprich, wenn ich jetzt sowas wie ein Datum nehme,
nicht bei uns habe ich also typischerweise sowas wie Tag,
Monat, Jahr im Angelsächsischen Raum, wird das entsprechend umgebaut.
Dann habe ich dann also
eher Monat und Tag vertauscht
Nicht dann eben so was wie Benutzeroberflächen, Tastaturbelegung,
habe ich da häufig da dann also auch noch mit dahinter und
eben alle möglichen anderen auch von Zahlenformate und eben irgendwie Zeitformate.
Also sprich, schreibe ich 13 Uhr oder sage ich One PM,
also auch das wären dann also entsprechend Sachen, die darüber gemacht werden. In,
da ist es jetzt eben so abhängig vom Betriebssystem,
wird das dann also auch immer so ein bisschen unterschiedlich gehandhabt,
also bei Linux-artigen Betriebssystemen kann man das also relativ flexibel über Befehle,
die dann also an so eine Standardbibliothek, also beispielsweise Standardzielbibliothek,
dann also gehen, entsprechend sich ansehen bzw. umschalten.
Auch in Java kann man sowas letztendlich abfragen,
wo ich dann eben sehe, wie solche Sachen dann mit drin sind.
Das wirkt sich teilweise auch auf Zeichensatzkodierung aus,
also bei einigen Programmen ist es also eben auch so,
wenn ich jetzt irgendwie die falsche Lokale eingestellt habe und ich die dann also irgendwie starte,
dass ich dann also Umlaute nicht richtig angezeigt bekomme,
wenn ich sie dann eingebe.
Wie gesagt, Inzwischen ist es auch so, dass ich seitens des Betriebssystems,
sofern es das bietet, dann eben darüber auch die Benutzeroberfläche umschalten kann.
Also früher war es eben wirklich so,
dass wenn ich also irgendein Programm entwickelt habe, programmiert habe,
nicht, dann habe ich mir also wirklich ja überlegt,
wie sollen also irgendwelche Menüüüberschriften sein, wie sollen also irgendwelche Aktionen sein,
wie ist das beschriftet.
So, wenn ich das jetzt also hier nur irgendwie klein,
klein in Deutschland verkaufe, mag das ja so funktionieren und ganz gut sein,
nicht inzwischen ist man global, ein Großteil der Software wird,
was weiß ich wo, entwickelt und gemacht.
Also ob das nun immer die, in Anführungszeichen, tollen,
billigen Programme ja aus Indien sind, seien wir dahingestellt.
Aber letztendlich gibt es dann also solche Sachen und was man natürlich dann auch macht oder machen möchte,
ist, dass man also auch seine eigenen Programme natürlich so macht,
dass ich die jetzt nicht nur an ein Zielmarkt habe,
sondern ich, die dann eigentlich möglichst also auch irgendwie flexibel handhaben möchte.
So und da ist es eigentlich jetzt so,
dass entsprechende Bibliotheken, Programmierbibliothekenarm, das dann eben auch liefern,
dass ich eben sagen kann, ich möchte beispielsweise so als typische Aktion haben,
einen Button mit, okay, beziehungsweise mit abbrechen und beenden.
Und das muss sich dann eben nicht jedes Mal irgendwo gucken,
wie wird das in Sprache XY gemacht,
sondern ich habe einfach nur eine Funktion,
wo ich dann eben sage, Exit-Button oder Cancel-Button oder wie auch immer,
wo ich dann also quasi die Beschriftung habe und irgendwo im Hintergrund dazu,
abhängig von dieser lokale Einstellung, ist dann eben eine Bibliothek,
wo ich dann entweder Deutsch oder Englisch oder chinesisch dann drauf liegen habe und dann eben auch die passende Beschriftung dazu habe.
Auch vom Betriebssystem ist es so, dass dann das inzwischen,
also auch problemlos, über lokale Einstellungen umschaltbar machen kann
Wie gesagt, hier habe ich jetzt eben beispielsweise,
so war es das ja als Sprache Deutsch habe,
Zeichensatzkodierung UTF 8. Nicht und hier ist dann eben drin,
wie jetzt also beispielsweise in der Programmiersprache C,
also jetzt irgendwelche Zahlen dargestellt werden,
wie Zeiten dargestellt werden und so weiter.
Und das kann man dann eben entsprechend auch irgendwie alles beliebig umschalten.
Was sich dann hinter solchen Einstellungen dann häufig auch verbirgt,
ist dann eben auch die komplette Umschaltung, also von solchen Menüüüberschriften,
wo ich dann eben auch sagen kann, wenn ich jetzt hier bin,
über uns irgendwie Systemadministration mache, das System drauf habe.
Wir kriegen also das Gast um einen englischsprachigen Kollegen. Nicht,
dann ist das also quasi eine Einstellung so einer Umgebungsvariablen.
Und dann hat der Kollege dann halt eben englischsprachiges Linux.
Und seit Windows 8 funktioniert das also im Prinzip dann auch bei Windows,
dass man also internationale Versionen haben kann,
beziehungsweise vorher gab es das dann also bei den Professional-Versionen,
ab 7 inzwischen Windows 10 hat er standardmäßig,
dass eigentlich dann alle Versionen dann eben auch mit anderen Spracheinstellungen
dann passend umgeschaltet werden können
Gut, hier sind wir noch mal kurz aufgezählt,
was man dann eben natürlich braucht,
um jetzt also irgendwie Texte von A nach B zu konvertieren oder zurück,
um zu sagen, nicht,
wenn ich jetzt von Windows-Rechnern zu Linux-Rechnen und Daten konvertiere und der eine ist Isokodierung der anderen,
ASG-Kodierung, dass man dann also irgendwie typischerweise irgendwelche Arten von Umwandlungswerkzeugen hat,
wo ich dann eben sage,
von da nach da,
also hier sind da jetzt also beispielsweise einige von diesen Tools da mit drin,
wie man sie jetzt auf Linux-System findet.
Da gibt es dann also Doors to Unix und Unix to Doors.
Oder eben sowas wie E-Con,
womit ich dann eben wirklich generell sagen kann,
From to und dann also beliebige Texte von A nach B hin und her konvertieren kann.
Und dort dann eben, wenn man sich das also mit Elma ansieht,
gibt es dann eben auch alle möglichen Codierungen oder Codierungsvorschriften.
Was sich dort also angeben kann, also wie gesagt,
sind hier noch irgendwie diese ganzen Arten Windows-Code-Pages.
Nicht dann hier irgendwelche Codierungen, von denen ich zugehenermaßen auch noch nie gehört habe.
Gut, hier so Unicode ist klar. USF sagt mir
jetzt auch nichts. Hier sind dann diese ISO-Code-Pages. Also wie gesagt,
nicht, dass es dann irgendwelche alten Codierungen von IBM-Maschinen,
das sind dann diese ganzen Uralt-Codierungen,
die man also teilweise bei den alten IBM-Hobeln dann immer gefunden hatte.
Dieses EB-C-D-I-C, wobei es dafür dann eben auch einen
ganzen Satz von gab und so weiter und so fort.
Und damit kann ich dann eben dafür sorgen,
dass ich also letztendlich irgendeinen Text oder eine Textdatei nehme,
Dass ich jetzt eben sagen kann, beispielsweise... Was ist das also für eine Datei?
Nicht in diesem Fall, also jetzt hier das,
was ich jetzt für die Vorlesung nehme,
ist eben irgendwie ein UTF8 geschriebener Unico-Text,
den ich ja hier quasi mit meiner Text verarbeite,
sondern also irgendwie behake und den könnte ich,
wenn ich den jetzt also beispielsweise dann also irgendwie an irgendeinem
alten Dorsrechner mir ansehen kann,
also von Unix
In Boss umkodieren mit den Zahlen, Enden und vielleicht noch
irgendwelche anderen Kodierungen umbauen. Und dadurch kann man dann die
Sachen dann hin und her transferieren. Gut, abschließend,
zu den Kodierungen oder Kodierungsgeschichten dann hier noch eine Sache,
die für Informatiker dann auch noch interessant ist,
mit der man tagtäglich zu tun hat, zumindest passiv.
Auch das ist etwas, was man also,
denke ich mal, praktisch eher seltener benutzt, sogenannte Base 64-Kodierungen.
Und zwar geht es darum, dass ich sage,
Bislang haben wir ja also immer nur betrachtet, Zeichen, Zeichensätze.
Wenn ich jetzt irgendwelche Binärdateien übertragen möchte, wie kriege ich
das zwischen verschiedenen Berechnern irgendwie hin? Aufgetaucht ist das Problem im Prinzip, und da ist eigentlich die BS64-Kodierung eben auch immer noch drin. Bei E-Mails,
E-Mail-Anhänge, wo ich jetzt also nicht nur noch reine Textdatei habe und weiß,
dass es also irgendwie so und so als Text kodiert,
sondern ich habe jetzt also irgendeine andere Datei in irgendeinem beliebigen Dateiformat,
was aber jetzt keine Textdatei ist,
sei das also jetzt Ein Bild, also ein JPEG-Datei,
sei das, also irgendein MP-Irgendwas-Format, eine Musikdatei,
sei das also auch ein Binärprogramm, ein ausführbares Programm,
der böse Virus,
den ich also gleich anklicke und als Anhang und dann also auf meinem Rechner ausführe,
was auch immer.
So, wie kriege ich das jetzt von einem Rechnersystem
zum anderen übertragen, in dem quasi normalen E-Mail-Standard.
Und dazu muss er jetzt eben wissen, dass also in
dem E-Mail-Protokoll das SMTP Was ja nun auch schon ein bisschen älter ist.
Alles auf sieben Bit, Usky ausgelegt ist und nicht mehr.
Das heißt, selbst sowas wie Umlaute könnte ich eigentlich als E-Mail
in irgendwelchen E-Mail-Sachen gar nicht richtig benutzen oder gar nicht weiter verschicken.
So, und das, was dort passiert im Hintergrund,
was also quasi mal ein Mail-Client automatisch macht,
wenn ich also auf Spaß abschicken sind, klicke, ist,
dass sämtliche Anhänge und gegebenenfalls eben auch eine mitgelieferte Text umkodiert wird,
sodass ich dann eben sieben Bit-Asky-Code an den Mail-Empfänger verschicke.
Und dort, wenn der in seinem Mail-Client jetzt also quasi die Mail aufruft,
vom Server runterlädt, sich anzeigen lässt,
dann eben quasi genau das Umgekehrte passiert,
dass das wieder zurückkodiert wird.
Und das ist eben das, was diese Base 64-Godierung macht.
Das heißt, ich habe ein Verfahren,
was also eine beliebige Datei in 7 Bett Asky umsetzt.
Und das ist eigentlich der Standard, wo das gemacht wird.
So das, was dabei passiert, ist,
dass im Prinzip jetzt nur Buchstaben ziffern und genau drei Sonderzeichen benutzt werden.
Und das, was man macht, ist,
dass die Daten eigentlich am Blog,
also sprich beidweise oder bitweise in Afsky-Symbole umgesetzt werden.
So, wie muss man sich das vorstellen?
Ich habe hier meinen ursprünglichen Code. Das heißt,
das sind jetzt also hier irgendwie drei Byte,
also im Wahrheit dann immer jeweils als acht Bit nicht,
also von 7 bis 0
hier irgendwie durchgeschrieben
Die können irgendwo in der Bilddatei liegen, das kann aber auch irgendein Text sein,
in ISO oder OTF8-Kodierung, das kann aber eben auch irgendwas Beliebiges anderes sein. Und das,
was, also diese Base 464-Kodierung macht, ist,
dass sie also quasi aus diesen drei Bite vier Asky-Zeichen macht,
und zwar einfach dadurch,
dass quasi hier die Bits abgezählt und neu nummeriert werden,
also sprich einfach eins zu eins, hier irgendwie so eine Zuordnung passiert,
in vier Zeichen, die sind jetzt hier jeweils sechs Bit lang.
Damit habe ich quasi jetzt mit diesen sechs Binärworten 64 Möglichkeiten. So,
und diese Zahlen von 0 bis 64 oder 0 bis 63,
vielmehr, werden dann umgesetzt in Aski-Zeichen,
nämlich 0 bis 25 sind Großbuchstaben, 26 bis 51 sind dann kleinen Buchstaben,
52 bis 61 sind die Ziffern 0 bis 9.
Dann habe ich jetzt also quasi in diesem Fall jetzt
62 Symbole. Ich brauche aber jetzt 64 Symbole,
also wird noch am Plus und so ein Slash-Arts-Zeichen mit hinzugenommen.
Das heißt, damit kann ich dann alle Mitkombinationen,
die hier anfahren, durch diese Zeichen kodieren.
So, dann gibt es noch etwas, dass man das Gleichheitszeichen noch mitbenutzt.
Das ist also quasi ein Füllzeichen, weil hier wird ja immer vorausgesetzt,
dass die Zeichen, die ich hier übertrage,
also sprich dann eben auch die Anzahl der Bytes durch Breithalber sein muss.
Ich fahre ich aber so immer quasi aus drei Byte,
vier, solcher solcher, ähm,
sechs Bit-Binär-Worte mache und die dann eben entsprechend in diese Aski-Zeichen umsetze.
Wenn das jetzt nicht hinhaut, und ich lasse es beispielsweise nur noch ein oder zwei Byte habe,
dann wird eben an entsprechenden Stellen dann eben sowas wie dieses Gleichherzzeichen in dieser Base 64-Kodierung übertragen.
Und Das Ganze ist damit dann dementsprechend direkt benutzbar. So,
danach gibt es dann, oder was man dann noch teilweise macht,
das ist aber optional, also Carridge Returner ist ein Zahlenumbruch, um das Ganze dann eben zu kodieren. So nicht. Und das,
was dann dann macht, ist also wirklich eine stumpfe Unkodierung,
also beispielsweise, wenn ich jetzt eine Textdatei nehme,
also Man, großes M, kleines A, kleines N,
wie er jetzt als Asky-Code 7, 7,
9, 7 und 1, 1, 0,
hätte dann also hier die entsprechenden Bitten oder 77,
97 und 110, also ich muss jetzt das leider dezimal so,
dann habe ich hier die entsprechenden Bitmuster,
das wird dann eben in diese Sechsergruppen, daraus kriege ich dann,
dass ich hier quasi jetzt ein Bittenmuster,
wo ich das dann eben einfach als Binär zahle,
als 19 interpretiere, sprich 16 plus 2 plus 1. Nicht hier durch 16 plus 4 plus 2, also 22. Und dann eben entsprechend dieser Zuordnungstabelle daraus dann eben ein Aski-Zeichen mache.
So, das, was ich dann habe, diese Aski-Zeichen-Folge,
sieben Bitt kompatibel, kann ich dann also problemlos entsprechend verschicken.
Ein Nachteil, was man hier natürlich schon sieht, ist,
Wenn ich jetzt also beispielsweise bei diesem Beispiel Text bleibe,
ich mache hier also aus drei Buchstaben vier Buchstaben,
das heißt also die resultierende Datei wird eben in der Regel größer werden.
Gut, ist halt nun mal so. Aber letztendlich ist dieses Verfahren eben etwas,
womit ich dann eben auch beliebige Dateien halte und das war ja das,
womit die Nase angefangen hatte, übertragen kann.
Das heißt, hier ist es jetzt für ein Beispiel einer Textdatei
Im Prinzip wird aber ja einfach nur irgendeinen Bits dringen genommen,
der dann einfach entsprechend diesen Regeln umkodiert wird.
Und wenn ich jetzt eben ausführbares Programm oder eine Bilddatei nehme,
dann nehme ich da eben AFA den entsprechenden Bits dringend zerlegt,
den eben in diese sechs Bit-Gruppen und mache daraus dann eben diese Base 64-Codierung.
Gut, braucht man dann eben beim Transfer quasi über dieses Mail-Protokoll
zum Beispiel in neueren Java-Versionen ist es eben zum Beispiel so,
dass es da also direkt JDK, also ein Development-Kit.
Er ist dann also quasi Funktion Base 64 N-Coder oder Base 64 Decoder gibt.
Ansonsten gibt es also auch in diversen anderen Paketen entsprechende Bibliotheksfunktionen,
die einem sowas umbauen. Das heißt also,
man muss irgendwie solche Umkodierungen jetzt nicht immer selber programmieren,
sondern das gibt es dann fährt ja aus irgendwelchen Bibliotheken,
gilt auch für beliebige andere Beispiele,
wo man also bestimmte Umkodierungen macht oder machen möchte,
wo das dann also letztendlich immer Wichtig ist,
dass man da dann einfach als Programmierer jetzt nur weiß,
für meine Programmiersprache.
Y sei das Java, sei das C, sei das Häskel,
sei das whatever. Dass man da dann eben guckt,
mit welchen Bibliotheken kriege ich dann eben entsprechende Sachen hin.
Gut, damit bin ich, jetzt als ich hier mit
dieser Kurzvorstellung zu zeichnen oder Zeichen setzen, eigentlich soweit fertig.
Also das, was, wie gesagt,
hier hängen bleiben soll, grob Aski-Kodierung, warum funktioniert das nicht?
Was sind die Erweiterungen? Nicht inzwischen muss man sagen,
also seit eigentlich jetzt sieben, acht Jahren oder so laufen,
alle Betriebssysteme mit sowas wie UTF 8. Das heißt,
habe ich also hinsichtlich von irgendwelchen Zeichensätzen, beziehungsweise den Kodierungen,
die sich dann dahinter verbergen.
Also jetzt keine Probleme mehr. Ist aber natürlich nach wie vor
immer noch irgendwo programmabhängig, wie arbeiten bestimmte Programme jetzt mit den Zeichen.
Und das ist dann eben frontabhängig,
was man also mit diesem von 2D-Vior sieht,
dass sich eben bei bestimmten Fonds dann vielleicht auch gar nicht alle Zeichensätze,
die zwar oder alle Zeichen,
die dann zwar in einem Unicode-Standard mit drin und definiert sind,
angezeigt bekomme,
weil der Fond das dann eben letztendlich nicht hergibt
Gut, dann werde ich jetzt auch schon mal mit dem nächsten Kapitel anfangen.
Da geht das dann also auch noch mal,
das ist auch noch mal einiges an Wiederholung, um logische Operationen.
Und zwar in diesem Fall jetzt die Wulsche Algebra erstmal als Beschreibung.
Das kann man sich natürlich fragen, wofür braucht man sowas,
wie so eine Algebra als mathematisches Konstrukt,
dass man da dann eben wirklich jetzt die Möglichkeit hat,
bestimmte Operationen und Eigenschaften, also fest zu definieren.
Und dass Dame dann eben auch hinsichtigte Art und Weise,
wie damit jetzt gerechnet wird oder wie sowas,
also Operationen zum Beispiel auf Bits oder auf BitVac-Toren passieren,
dass da eben bestimmte Eigenschaften letztendlich gelten.
Brauchen tut man das, also zum einen für die Computerarithmetik.
Da hatte ich das ja schon so ein bisschen kurz gezeigt.
Da waren wir ja schon, also letzten Freitag einiges
so an
Ergeborgenen Eigenschaften, sprich, wenn man jetzt sagt,
also wenn ich eben beispielsweise mit zwei Komplimenten rechne,
wenn ich mit A-Triple E 754 rechne, wie sieht das aus?
Gilt zum Beispiel sowas wie das Kommutativgesetz, gilt die Abgeschlossenheit?
Das sind eben eigentlich alles Algebrage-Eigenschaften, über die man sich da dann unterhält. Im nächsten Kapitel,
also das, was nach diesem kommt, hatte ich gesagt,
da geht es dann im Prinzip um die Datenübertragung, Fehlererkennung,
Fehlerkorrektur, also auch das dann Eigentlich ein ganz zentrales Thema für die Informatik,
weil ich sage jetzt immer ja wunderbar,
also ich habe hier meine Daten, die werden übertragen.
Eine Eigenschaft, die man dabei vielleicht haben möchte,
habe ich ja eben gerade an dem Beispiel von Texten erklärt,
ist, dass ich eine kompakte Codierung habe, um dafür zu sorgen,
dass wenn nicht alle Zeichen gleich wahrscheinlich sind, diejenigen,
die häufiger vorkommen mit eben entsprechend kürzerem Code dargestellt werden und die,
die seltener vorkommen,
dann eben gegebenenfalls einen längeren Code haben
Auf der anderen Seite habe ich bei der Datenübertragung dann gerade
wieder das Problem, dass es vielleicht zur Störung kommt.
Also sprich, ich bin hier irgendwo im WLAN unterwegs.
Irgendwo anders läuft also gerade irgendwo ein Elektromotor an,
da kommen ja ein paar Funken dran, da wird das irgendwie nicht sauber übertragen.
Das, was natürlich nicht passieren soll, ist,
dass dann also irgendwelche Sachen, die übertragen werden,
also entweder falsch übertragen werden, sondern es soll festgestellt worden,
da ist also irgendwo ein Übertragungsfehler aufgetreten,
gegebenenfalls sollte ich da mal vielleicht auch die Möglichkeit haben,
einen Fehler nicht nur zu erkennen,
sondern auch zu korrigieren
Und auch dazu wären wir dann also in dem nächsten Kapitel dann also einiges an Methoden kennenlernen,
wie man das machen kann. Ich kann natürlich sagen,
ähnlich wie jetzt beim Morsecode, ich habe nicht verstanden,
schick mir das bitte nochmal, setzt aber voraus,
dass ich eine bidirektionale Kommunikation habe, sprich in beide Richtungen. Und das funktioniert,
je nach Einschränkung natürlich, also auch immer ganz gut,
wenn ich jetzt also relativ viel Zeit habe,
wenn ich jetzt aber sage,
ich möchte eine sichere Übertragung haben, wo gewährleistet ist,
dass wenn die Störung einen bestimmten Prozentsatz nicht überschreiten,
ich eigentlich meine Informationen nur rausschicken muss und davon ausgehen kann,
der Empfänger, bekommt das schon richtig oder kann mit diesen Störungen leben bzw. die wieder zurechtrechnen.
Sowas wie, da kommt man dann eben zur Codierung, die dann also Fehlerkorrektur machen.
Also die ältesten Beispiele für uns sind dann eigentlich so typischerweise das,
was man zum Beispiel so in den ganzen Codierungen auf optischen Medien hat,
also sprich CD, DVD, Sonstiges,
wo ich also auch in meiner Information die 001 auslese.
Und wenn der jetzt also irgendwie vielleicht doch mal so ein Staubkorn da mit drauf ist,
ein kleiner Kratzer drauf ist, dann soll das also nicht dazu führen,
dass ich da dann also entweder falsche Daten rauslese,
Die Musik also hier auf einmal aussetzt oder im Film,
also irgendwie auf einmal irgendwie nichts ankommt,
sondern davon soll der Benutzer eben erstmal nichts merken.
Also gerade bei solchen Sachen wird also dann eine sehr aufwendige Fehlerkorrektur eingesetzt,
dass man also wirklich schon mit,
selbst mit relativ massiv zerkratzten CDs,
die dann also noch mit entsprechend viel Aufwand
erstmal ohne Probleme auslesen kann
Gut, dann für sowas sind dann eben wirklich solche mathematischen Eigenschaften
entscheidend, beispielsweise in Form so eine Algebar. Gut,
das, womit wir hier dann immer arbeiten,
ist die sogenannte Bulcia Argebra, geht zurück auf George Buhl,
der im Prinzip dann mit der Aussagenlogik gearbeitet hat,
beziehungsweise die dann letztendlich begründet hat, wo ich dann zwei Werte habe,
nämlich wahr und falsch und wo dann über diesen Werten Nagelbar definiert ist.
Sorry, so dafür brauche ich drei grundlegende Funktionen,
nämlich einmal eine Negation, also sprich aus wahr,
wird falsch oder aus falsch wird wahr.
Ein und, unten oder. Und damit kann ich dann
im Prinzip alle beliebigen, komplexen Funktionen beziehungsweise Ausdrücke aufbauen.
Hierzu, hierhin ist nur nochmal beschrieben, findet man,
also wenn man in der Literatur guckt, immer sehr viele sehr unterschiedliche Schreibweisen.
Ich habe das hier dann teilweise auch mal irgendwie so ein bisschen gemischt.
Also das, was man typischerweise hart ist, also entweder so ein Negationshaken,
Für die Negierung einfach so einen Strich über dem Zeichen.
Oder wenn ich das jetzt also mit Asky-Code und programmiertechnisch mache,
verwendet man dann oft so was wie die Tilde davor.
Das sind dann eigentlich hier auch diejenigen, die ich dann jetzt eher benutzen werde.
Das und wird dann eben hier durch so ein Operator
gekennzeichnet oder auch programmiertechnisch motiviert dann eher als Kaufmanns und das
oder durch den senkrechten Strich bzw. dann eben hier diesen Operator.
Was ich hier jetzt auch immer noch kurz
mit ansprechen werde,
ist das sogenannte Exklusiv-Oder
Auch dazu gibt es dann unterschiedliche Schreibweisen, entweder so ein Dach,
was dann also auch in diesem Falls in den Programmiersprachen benutzt wird,
mathematisch hat man dann immer quasi so ein Plus mit so einem Kreis drumherum.
Gut, wie gesagt, George Buhl hat da ja auch sehr,
also die Bulciale Gebra, also logischer Aussagenlogik gemacht.
Der Herr Shannon, der dann uns auch noch später im Rahmen der Codierung begegnen wird,
hat das jetzt also quasi mit entsprechenden Funktionen oder Funktionselementen umgesetzt.
Und das ist eigentlich dann also auch die Basis von dem,
was wir heutzutage so als digitale Logik kennen,
wo ich dann nämlich sage, okay,
also True ist eins und Falls ist null.
Und daraus kann ich dann eben meine Funktion meiner Aussagen treffen.
Damit kann ich dann aber eben auch meine in Zahlendarstellung eben beispielsweise meine Rechnung machen,
indem ich dann eben entsprechende über Schaltalgebranche, Ausdrücke,
Funktionen aufbaue,
die dann eben beispielsweise zwei Zahlen,
die jetzt binär
Zweier Kompliment kodiert sind, addiert werden können. Gut,
also Grundverknüpfung von diesen beiden Werten sind eben,
also jeweils die Funktionstabellen, not,
dass also das Ganze quasi entsprechend legiert ist und Funktion,
wenn beides wahr ist, wird es wahr.
Ansonsten ist es immer jeweils null. Beim Oder,
wenn mindestens ein war oder eine Arzt dabei ist,
wird das dementsprechend eins. Und hier, wie gesagt,
das ist dann jetzt nicht direkt für die Bulschal gebracht,
wird uns aber auch noch häufig begegnen, exklusiv oder ist halt
Im Prinzip das in dem Fall, wenn beide genau eins sind,
dann liefert das als Funktion dann eben auch wieder eine Null,
beziehungsweise beide Two sind, dann wird das also hier entsprechend zu Falls.
Da sieht man an ihm eigentlich,
deshalb auch der Name exklusiv oder beziehungsweise Antivalenz,
nicht so lang X und Y andere Werte haben,
also 0 und 1 liefert eine 1 und 1 und 0 liefert eine 1,
wenn die beiden aber live sind,
also äquivalent sind,
liefert das eben entsprechend
eine Null
So, damit lassen sich dann eben letztendlich alle Operationen darstellen,
mathematisch gesehen kann ich sagen,
mit diesen drei Funktionen habe ich sowas wie eine vollständige Basismenge,
um damit beliebige Funktionen, Schaltfunktionen aufzubauen.
Auch das für uns uns dann später noch weiter begegnen. Gut,
jetzt noch zur Frage, wenn ich jetzt Funktionen habe oder aufbauen möchte mit mehreren Variablen,
wie viele Funktionen zu diesen Variablen gibt es?
Und zwar kann man sich das dann immer dadurch herleiten,
dass man sagt, wenn ich jetzt also beispielsweise Funktionen habe mit einer Variablen,
also eine Funktion von X, wie viele Funktionen gibt es?
Vier Stück, nämlich eine,
die X kann jeweils die Werte 0 oder eins haben,
immer als Ergebnis 0 liefert, eine,
die dann immer als Ergebnis eins liefert, eine,
die, wenn X-0 ist, als Ergebnis 0,
wenn X-1 ist, als Ergebnis eins liefert,
also quasi den Wert von X selber und einmal Arne,
die das genau umgekehrt macht, also X negiert.
So, wenn ich Funktionen mit zwei Variablen habe,
kann ich insgesamt 16 Funktionen haben, beziehungsweise insgesamt für allgemein hat gesprochen,
für Funktionen mit En-Variablen habe ich zwei,
hoch zwei Hochend-Funktionen, die es im Prinzip gibt.
Für zwei Variablen ist das hier also nochmal aufgezeichnet.
Man kann sich das immer so vorstellen. Ich habe hier
meine Variablen X und Y mit X und Y
kann ich jetzt vier unterschiedliche Kombinationen erstmal aufbauen.
Nicht, das wäre genau dieses zwei Hochend hier oben.
So, das sind also jetzt vier unterschiedliche Kombinationen, die ich habe.
Und jetzt kann ich als Funktion Das sind das,
also hier quasi in den Zahlen immer die jeweiligen Funktionen. Dann immer sagen,
ich kann jetzt für jede Kombination aus X und Y,
dann eben auch an jeder Stelle entweder eine Null oder eine Eins haben.
Demzufolge ist dann hier diese Anzahl dann eben genau dieses Zwei-Hoch-Zwei-Hoch-Zwei in diesem Fall,
also in diesem Fall jetzt 16, ansonsten im Erfahr gemeint,
wird gesprochen, zwar auch zwei auch N, mögliche Funktionen.
Nicht die sind dann hier nochmal aufgeschrieben, also jetzt als Name,
beziehungsweise hier in so einer Inflation, hier dann eben,
wie man das beispielsweise in Programmiersprachen dann beschreiben würde,
dann eben letztendlich genau diese Funktion.
So, formal gesprochen, Bulsche Algeba, was ist das?
Also, das ist ein Sechst-Tubel, eine Menge aus zwei Elementen,
nämlich diesen beiden jeweiligen Werten 0 und 1.
Drei Funktionen oder drei Verknüpfungen darauf, der Unverknüpf,
der Oderverknüpfung der Ohrenverknüpfung der Negation und zwei Wir hatten nämlich
einmal einem Null-Element der Addition und ein Eins-Element der Multiplikation,
womit ich dann also quasi hierüber dann zwei Funktionen,
nämlich Addition und Multiplikation mir aufbauen kann.
So rein mathematisch gesehen, wenn ich jetzt also das zum Beispiel
vergleiche mit Zahlen, also der Zahlentheorie. Da kann ich sagen,
zum Beispiel jetzt also bei Zahlen habe ich jetzt also im
Ring der Zahlen sowas wie Zwei Funktionen, Addition und Multiplikation,
bei der Bulschen Algebra, kann ich sagen,
habe ich sowas wie Oder-Verknüpfung und Unverknüpfung.
Ich habe hier assoziativ Gesetze, die gibt es in der Bulschen Algebra genauso.
Ich habe Distributivgesetze, auch das gilt. Ich habe dann
eben diese Identitäten, also sprich neutrales Element der Addition,
neutrales Element der Multiplikation.
Auch das gibt es in der Bulschen Algebra letztendlich genauso,
dass ich eben sage,
ah,
oder null
Ist nichts anderes als A selber. A und Eins ist
auch nichts anderes als A selber. Dann gibt es hier sowas wie Vernichtung,
also Amer 0 ist null, A und null ist auch null.
Nicht zweimal negie, zweimal minus ist plus, zweimal negiert ist eben der Wert selber. Gut,
und dann habe ich hier das Ganze dann auch noch entsprechend erweitert dann eben jetzt hier,
also auf diese Eigenschaften der bulschen Algebade Aussagen, Logik,
dass ich eben sage A oder A ist A selber,
also die Identpotenz, A und HSV A selber.
Und da dann eben die entsprechenden Regeln,
die dann also für die Bulschalgebar dann noch zusätzlich gelten.
Gut, das sind jetzt einfach erstmal nur mathematische Eigenschaften aufgezählt. Braucht man,
beziehungsweise, dass man eben mit der Bulschalge war,
braucht man eben genau dann,
wenn ich, was ich also eingangs gesagt hatte,
hier in diesem Bereich Computerinnen, Metik, Fehlererkennung,
Codierungstheorie, bestimmte Eigenschaften von meinem Code bewusst beziehungsweise beschreiben möchte,
weil das geht dann eben häufig über entsprechende mathematische Beweise,
die dann eben also auf diesen Regeln der Bulschen Argeball letztendlich aufbauen.
So einiges davon wird uns dann also auch noch später in irgendwelchen Übungsaufgaben begegnen,
wo man dann eben beispielsweise dann eben auch irgendwelche hinsichtliche Aussagenlogik hinsichtlich der Rechnung dann eben irgendwie sowas hat,
wo man dann eben zum Beispiel sowas macht, vorkommen wird,
wie, wenn ich dann SEA oder A nicht,
dann kann ich das eben kürzen.
Das heißt, wenn man da jetzt also entsprechend längere Ausdrücke
hat, kann man damit dann
entsprechend weiterarbeiten
Etwas, was wir da dann also auch relativ häufig brauchen werden,
ist die sogenannte Morgenregeln oder beziehungsweise die morgen regeln.
Also das gilt A oder B, negiert,
ist genau das Gleiche wie nicht A und nicht B. Beziehungsweise umgekehrt
A und B, negiert ist nicht A oder nicht weh.
Das, was hier drunter aufgezeichnet ist, also mit diesem komischen Symbolen,
auch das wird es dann später noch begegnen,
das ist eigentlich dann die Art und Weise, wie Logik Also das,
was ich hier quasi formelmäßig aufschreibe, dann technisch umgesetzt wird,
dass man sagt, ich habe eben elektrisches Bauelement,
wo ich dann also quasi sowas wie ein Nähen,
in dieser Falle Nore, das heißt A oder B negiert habe,
was dann also beispielsweise durch Symbol so ein Symbol gekennzeichnet ist,
was dann eben genau diese Funktion letztendlich realisiert.
Wenn ich das jetzt brauche, um da bestimmte Eigenschaften mitzuzeigen,
also ob das beispielsweise jetzt im der ARDU eines Computers,
also irgendwie richtig drin ist, um zwei Zahlen zu addieren. Kann es sein,
dass er in diesen Ausdruck umformen muss und da kann man eben sowas wie diese Morgenregel anwenden,
nicht beziehungsweise, dass es eben funktional, dass Negation ist,
dann also hier, also dies ist dann dieses Symbol für dieses oder und die Negation,
dann durch so einen Punkt gekennzeichnet, dass das quasi äquivalent ist,
um Symbol fürs und wo dann also die Negation an hier an den Eingängen stattfindet.
Wie gesagt, das wird uns dann später auch noch kurz begegnen, wenn es dann also im Prinzip um Schaltfunktionen bzw. Schaltnetze geht. Auch da ist es sonst so,
dass man natürlich typischerweise sagt,
Wir machen jetzt irgendwie einen Rechner- oder Rechnersystem hat und das entwirft,
wird man nicht ganz unten irgendwo anfangen und sagen,
also ich überlege mir jetzt mal, also von meinen 18 Milliarden Transistoren,
die jetzt also irgendwie in der CPU drin sind,
wie verschalte ich die miteinander,
sondern da kann man eben schon sagen, okay,
das wird quasi hierarchisch umgesetzt, indem dann eben beispielsweise gesagt wird,
in CEMOS-Technologie würde Sowas wie so ein Norgatter durch vier Transistoren realisiert werden können,
die ich eben so und so miteinander verschaltet habe.
Nicht, dann habe ich also auf einmal keine böse Elektrotechnik mehr,
sondern bin ich jetzt das Aufarmen,
weil bei der Butschen Alge war, bei Nullen und Einsen.
Und auch da wird man sich jetzt natürlich nicht mehr mit sowas aufhalten,
sondern da wird man dann eben noch weiter abstrahieren und sagen, okay,
mit diesen Nullen und Einsen repräsentiere ich jetzt beispielsweise Zahlen, also beispielsweise Zweierkomplimentdarstellung.
Ich habe dann 32 Bitstring, Mit denen möchte ich rechnen, also habe ich sowas wie eine Additionsoperation, sprich eine ALEU,
die dann eben quasi diese Berechnung machen kann,
die wird dann irgendwo intern aus lauter solchen Gattern aufgebaut sein und wenn ich dann eben noch weiter reingehen würde,
aus einzelnen Transistoren,
für mich als Entwerfer kann ich dann aber eben sowas schreiben,
wie X ist gleich A plus B,
also sprich wie in einer Programmierung und ich habe dann eben die entsprechenden Werkzeuge,
die mir das dann auch über Arten von Bibliotheken
dann quasi umsetzen
Um dann daraus eben beispielsweise jetzt irgendwelche neue Hardware zu bauen.
Gut, also soviel jetzt hier schon mal so ein bisschen vorneweggenommen.
Wie gesagt, Buche Algebra, da gibt es eben
einige Regeln. Was man davon nachher braucht,
werden wir dann also später noch kennenlernen,
weil da wird es dann also auch noch einiges an Aufgaben geben,
wo das dann also nochmal mit vorkommt.
Also ich hatte jetzt hier nochmal schon so ein bisschen vorgeführt und ja,
ab Freitag geht es dann nochmal ein bisschen mit anderen Funktionen bzw. anderen Sachen,
Eigenschaften, also in der Bulschen Algebra noch weiter.
Dann soll es das für heute gewesen sein.
Einen schönen Abend und tschüss