Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| kurse:ef05a-2021:js:utf8 [2022/02/15 07:03] – [and &&, or ||, not !] Ivo Blöchliger | kurse:ef05a-2021:js:utf8 [2022/03/08 14:12] (current) – [Zeichencodierung] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Zeichencodierung ====== | ||
| + | * https:// | ||
| + | ===== ASCII ===== | ||
| + | |||
| + | Codierung mit 7 Bits, also 128 mögliche Zeichen. Heute auf praktisch allen Geräten unterstützt. Programm-Code und Dateinamen sollten nur aus diesen Zeichen bestehen. | ||
| + | |||
| + | Zeichen 0-31 und 127: Kontrollzeichen (werden nicht angezeigt). | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Erzeugen Sie untenstehende ASCII-Tabelle (es fehlen viele Zeilen im Beispiel) in JavaScript, CSS und HTML. Die Tabelle soll dynamisch nach dem vollständigen Laden der Seite erzeugt werden. | ||
| + | * Die Tabelle soll erst in einem String erzeugt werden, der dann mit ' | ||
| + | * Ist der ASCII-Code als Zahl gegeben, kann dieser mit '' | ||
| + | * Kontrollzeichen 0-31 werden nicht angezeigt, es gibt aber Unicode-Zeichen dafür. Deren Code erhält man, indem man '' | ||
| + | * Umwandlung ins Zweierstystem erledigt '' | ||
| + | * | ||
| + | |||
| + | < | ||
| + | < | ||
| + | table, th, td { | ||
| + | background-color: | ||
| + | color: white; | ||
| + | border: 1px solid #444; | ||
| + | border-collapse: | ||
| + | } | ||
| + | |||
| + | td { | ||
| + | padding: 2px; | ||
| + | } | ||
| + | |||
| + | /* Alle span in einem td drin */ | ||
| + | td > span { | ||
| + | font-size: large; | ||
| + | font-weight: | ||
| + | color : red; | ||
| + | } | ||
| + | </ | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Unicode ===== | ||
| + | * Jedem Zeichen eine Nummer (bereits über 100' | ||
| + | * Unicode ist einfach eine Zahl, unabhängig davon ob diese dezimal oder hexadezimal notiert wird, und unabhängig davon, wie diese dann effektiv codiert (d.h. gespeichert) wird. | ||
| + | * De facto Standard auf dem Web, MacOS und Linux, wobei immer UTF-8 verwendet wird. | ||
| + | |||
| + | |||
| + | ===== UTF-8 ===== | ||
| + | * Heute ist ein Byte auf Computern (fast) immer 8 Bit gross. ASCII passt wunderbar in ein Byte. | ||
| + | * Zahlen über 65'536 brauchen mindestens 17 Bits, wie codieren, d.h. wie die Zahlen mit Bits und Bytes darstellen? | ||
| + | * UTF-32: Immer 4 Bytes pro Zeichen. | ||
| + | * UTF-8: ASCII-Zeichen als 1 Byte | ||
| + | * Andere Zeichen über mehrere Bytes verteilen (so viele wie nötig). | ||
| + | * Erstes Byte gibt u.a. an, wie viele Bytes benötigt werden. (z.B. 0b110x' | ||
| + | * Weitere Bytes sind als Folgebytes gekennzeichnet (starten mit 0b10xx' | ||
| + | |||
| + | ===== UTF-16 ===== | ||
| + | * JavaScript verwendet intern UTF-16 (was auch gut war, solange es viel weniger als $2^{16}$ Unicode Zeichen gab. | ||
| + | * 2 Bytes pro Zeichen, gewisse Zeichen müssen auch da in 4 Bytes (d.h. 2x 16 Bits) codiert werden. | ||
| + | * NTFS (das Windows-Filesystem) soll UTF-16 verwenden, wobei offenbar auch von Unicode ausdrücklich nicht zugelassene Kombinationen von Bytes verwendet werden können. | ||
| + | |||
| + | ====== Bool' | ||
| + | ===== Bool' | ||
| + | Bei bool' | ||
| + | |||
| + | Die wichtigsten drei Verknüpfungen sind: | ||
| + | ==== and ''&&'', | ||
| + | < | ||
| + | ^ '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | | '' | ||
| + | |||
| + | |||
| + | ===== Bitweise Operationen ===== | ||
| + | Natürliche Zahlen werden im Binärsystem gespeichert. Diese Darstellung kann nun bitweise mit anderen zahlen Verknüpft werden. So können Bits einer Zahl extrahiert und oder gesetzt werden. | ||
| + | |||
| + | Die Operatoren sind | ||
| + | * ''&'' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * ''< | ||
| + | * ''< | ||
| + | |||
| + | Beispiele: | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | ==== Bit-Extraktion ==== | ||
| + | Bits 3,4 und 5 aus '' | ||
| + | * '' | ||
| + | |||
| + | Bits 3,4 und 5 in '' | ||
| + | * '' | ||
| + | Bits 3,4 und 5 in '' | ||
| + | * '' | ||
| + | |||
| + | |||
| + | |||
| + | ===== Arbeitsblatt ===== | ||
| + | |||
| + | {{kurse: | ||