info:gene:repdonnees

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
info:gene:repdonnees [2022/10/05 19:10] philinfo:gene:repdonnees [2023/10/19 15:13] (Version actuelle) – [3. Encodage des entiers relatifs (complément à 2)] phil
Ligne 2: Ligne 2:
  
 ===== Représentation des données ===== ===== Représentation des données =====
-[Mise à jour le 5/10/2022]+[Mise à jour le 19/10/2023]
  
  
 **Sources** **Sources**
   * Numérique et sciences informatiques 1<sup>er</sup> - ellipses   * Numérique et sciences informatiques 1<sup>er</sup> - ellipses
 +
 +**Ressources**
 +  * Complément à 2 (<html><a href="https://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux" target="_blank">Wikipédia</a></html>)
 +  * Editeur hexadécimal en ligne : <html><a href="https://hexed.it/" target="_blank">HexEdit</a></html>
  
 ==== 1. Introduction ==== ==== 1. Introduction ====
Ligne 85: Ligne 89:
  
 //Vérification// : pour n = 18, N<sub>10</sub> ∈ [-2<sup>17</sup>, 2<sup>17</sup>-1] soit **-131072 ≤ N<sub>10</sub> ≤ 131071** //Vérification// : pour n = 18, N<sub>10</sub> ∈ [-2<sup>17</sup>, 2<sup>17</sup>-1] soit **-131072 ≤ N<sub>10</sub> ≤ 131071**
 +
 +
 +<callout type="primary" icon="true">**Méthode**
 +  * Les nombres positifs sont représentés de manière usuelle.
 +  * Les **nombres négatifs** sont obtenus en calculant l'opposé du nombre positif par deux opérations successives:
 +    * On **inverse les bits de l'écriture binaire** (opération binaire NON), on fait ce qu'on appelle le complément à un ;
 +    * On **ajoute 1** au résultat (**les dépassements sont ignorés**). \\ Cette opération correspond au calcul de **2<sup>n</sup> − |x|**, où n est la longueur de la représentation et |x| la valeur absolue du nombre à coder. \\ Ainsi, −1 s'écrit comme 256−1 = 255 = 11111111<sub>2</sub>, pour les nombres sur 8 bits. Ceci est à l'origine du nom de cette opération : « complément à 2 puissance n », quasi-systématiquement tronqué en « complément à 2 ».
 +
 +La même opération effectuée sur un nombre négatif donne le nombre positif de départ: **2<sup>n</sup> − (2<sup>n</sup> − x) = x**.
 +</callout>
  
  
Ligne 195: Ligne 209:
  
 === 5.1 ISO 8859 === === 5.1 ISO 8859 ===
 +  * **Ressource** : <html><a href="https://fr.wikipedia.org/wiki/ISO/CEI_8859-1" target="_blank">ISO-8859-1</a></html> sur Wikipédia
 +
 A compléter A compléter
  
Ligne 206: Ligne 222:
 <callout type="tip" icon="true">Chaque caractère a un code unique, appelé "//code point//" ou **point de code** et noté **U+XXXX** où chaque X est un caractère hexadécimal. En pratique  la séquence de X est au minimum de 4 caractères.</callout> <callout type="tip" icon="true">Chaque caractère a un code unique, appelé "//code point//" ou **point de code** et noté **U+XXXX** où chaque X est un caractère hexadécimal. En pratique  la séquence de X est au minimum de 4 caractères.</callout>
  
-Cette norme définit plusieurs techniques d'encodage pour représenter les points de code de manière plus ou moins économique selon la technique choisie. Ces encodages, appelés //formats de transformation universelle// ou //**U**niversal **T**ransformation **F**ormat// (**UTF**) en anglais, portent les noms **UTF-n**, où //n// indique le nombre minimal de //bits// pour représenter un point de code.+Cette norme définit plusieurs techniques d'encodage pour représenter les points de code de manière plus ou moins économique selon la technique choisie. Ces encodages, appelés //formats de transformation universelle// ou //**U**niversal **T**ransformation **F**ormat// (**UTF**) en anglais, portent les noms **UTF-n**, où //n// indique le nombre minimal de //bits// pour représenter un point de code. \\ \\ 
  
 {{ :info:gene:utf8.png?nolink&100|}} {{ :info:gene:utf8.png?nolink&100|}}
Ligne 228: Ligne 244:
 |  U+004B      | 01001011           | 01001011 (4b)                             | |  U+004B      | 01001011           | 01001011 (4b)                             |
 |  U+00C5      | 11000101           | 11000011 (C3) 10000101 (85)               | |  U+00C5      | 11000101           | 11000011 (C3) 10000101 (85)               |
-|  U+0A9C      | 00001010 10011100  | 11100000 (E0) 10101010 (AA) 10011100 (9C) |+|  U+0A9C      | 00001010 10011100  | 11100000 (E0) 10101010 (AA) 10011100 (9C) |   \\  \\
  
 == 5.3.2 UTF16 == == 5.3.2 UTF16 ==
-A compléter+Voir <html><a href="https://fr.wikipedia.org/wiki/Unicode" target="_blank">Unicode</a></html> sur Wikipédia. \\ \\
  
 == 5.3.3 UTF-32 == == 5.3.3 UTF-32 ==
-A compléter+Voir <html><a href="https://fr.wikipedia.org/wiki/Unicode" target="_blank">Unicode</a></html> sur Wikipédia. \\ \\
  
 == 5.3.4 UNICODE et Python == == 5.3.4 UNICODE et Python ==
 +{{ :python:python.png?nolink&50|}}
 +
 +<callout type="primary" icon="true">Les chaînes de caractères en Python sont des séquences de caractères au format **UTF-8**. Ces caractères peuvent être saisi directement avec leur point de code à l'aide d'une séquence d'échapement '\u' suivie du point de code en hexadécimal.</callout>
 +
 +//Exemple//
 +<code python *.py>
 +a = '\u0042'
 +print(a) # Affichage du caractère A
 +</code>
 +
 A compléter A compléter
  
 {{ :python:python.png?nolink&50|}} {{ :python:python.png?nolink&50|}}
-=== 5.Les chaînes de caractères en Python ===+=== 5.Les chaînes de caractères en Python ===
 Voir [[python:bases:chaines|Les séquences : chaînes de caractères]] Voir [[python:bases:chaines|Les séquences : chaînes de caractères]]
  
 +==== 6. Pour aller plus loin ====
 +**Real Python** - <html><a href="https://realpython.com/python-encodings-guide/" target="_blank">Unicode & Character Encodings in Python: A Painless Guide</a></html>
  
 ---- ----
  • info/gene/repdonnees.1664989815.txt.gz
  • Dernière modification : 2022/10/05 19:10
  • de phil