Guillaume Chanel, Damien Morard
Automne
cat
ghex
cat
ghex
Que concluez-vous ?
On peut stocker une suite d'octets (i.e. un nombre 16, 32 ou 64 bits) de deux manières:
Valeur | Stockage |
---|---|
0x1234 | 0x12 0x34 |
Valeur | Stockage |
---|---|
0x1234 | 0x34 0x12 |
ASCII (Amercian Standard Code for Information Interchange) est un standard qui permet d'encoder 128 caractères sur 7 bits
Problème: comment encoder les caractères d'autres languages (é, ö, ß, å, ...)
"Et mais on encode généralement des octets donc on a un bit de disponible !"
Solution: séparer l'encodage et les points de code (code-point)
Point de code: valeure numérique représentant un caractère (ou une autre significations)
Encodage: transformer un point de code en codage binaire
Unicode liste au total 1 114 112 points de code (0x0 à 0x10FFFF) permettant de transmettre quasiment tous les signes connus.
Les encodages peuvent être:
Exemples d'encodages pour les points Unicode:
Intervals des points de code (hex) |
Nb. de bits | Octet 1 | Octet 2 | Octet 3 | Octet 4 |
---|---|---|---|---|---|
[U+0000, U+007F] | 7 | 0xxxxxxx | Inspired from wikipedia | ||
[U+0080, U+07FF] | 11 | 110xxxxx | 10xxxxxx | ||
[U+0800, U+FFFF] | 16 | 1110xxxx | 10xxxxxx | 10xxxxxx | |
[U+10000, U+10FFFF] | 21 | 11110xxx | 10xxxxxx | 10xxxxxx | 10xxxxxx |
Les x représentent les bits du nombre à coder
Unicode (hex) | En binaire | UTF8 binaire | UTF8 hex. | |
---|---|---|---|---|
A | U+0041 | 100 0001 | 0100 0001 | 41 |
é | U+00E9 | 000 1110 1001 | 1100 0011 1010 1001 | C3 A9 |
€ | U+20AC | 0010 0000 1010 1100 | 1110 0010 1000 0010 1010 1100 | E2 82 AC |
U+222BU+1D6F3U+2202U+1D6F3
∫𝛳∂𝛳