« Programmation/Abstraction » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernier (discussion | contributions)
→‎Représentation des données : + moteurs physiques
Tavernier (discussion | contributions)
→‎Texte : suite et fin unicode
Ligne 268 :
 
Cependant devant l'extension mondiale de l'informatique et la limitation d'un système à 8 bits qui ne permet pas d'utiliser par exemple plusieurs alphabets différents dans un même document, l'ISO travaille depuis 1988 à l'élaboration d'un code universel : l'Unicode.
 
L'Unicode définit actuellement plus de {{formatnum:120000}} caractères en utilisant jusqu'à 31 bits pour chacun. Il renferme également un mécanisme de plages qui adapte le nombre de bits nécessaires pour chaque caractère en fonction de sa nature. Il existe 6 plages, la première occupant 1 octet, la dernière en utilisant 6. La première plage se reconnait à ce que le premier bit de l'octet est positionné à 0, les 7 bits suivants respectent la norme ascii. Un caractère unicode de cette plage est donc de la forme 0xxxxxxx et se trouve entièrement compatible avec un système ascii. Les plages suivantes se reconnaissant à ce que le bit de poids fort de chaque octet est positionné à 1, les bits de poids fort du premier octet permettent de connaître la plage (110xxxxx pour la plage à deux octets, 1110xxxx pour celle à 3, 11110xxx pour 4, 111110xx pour 5 et 1111110x pour 6), et les deux bits de poids fort des octets suivant sont systématiquement positionnés à 10 afin d'indiquer leur appartenance à une suite d'octets unicode. Un caractère de la deuxième plage est donc de la forme suivante : 110xxxxx 10xxxxxx ; et propose donc 11 bits utiles, ce qui permet <math>2^{11}=2048</math> caractères différents.
 
{| class="wikitable"
|+ Les plages unicode
! Plage !! Octets en UTF-8 !! Nombre de caractères codés
|-
| 1 || 0xxxxxxx || 128
|-
| 2 || 110xxxxx 10xxxxxx || <math>2^{11}=</math>{{formatnum:2048}}
|-
| 3 || 1110xxxx 10xxxxxx 10xxxxxx || <math>2^{16}=</math>{{formatnum:65536}}
|-
| 4 || 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx || <math>2^{21}=</math>{{formatnum:2097152}}
|-
| 5 || 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx || <math>2^{26}=</math>{{formatnum:67108864}}
|-
| 6 || 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx || <math>2^{31}=</math>{{formatnum:2147483648}}
|}
 
Avec plus de 2 milliards de combinaisons on a donc le temps de voir venir !
 
=== Images ===