Le texte et les chiffres
Comment l'ordinateur stocke et affiche du texte
Comment afficher du texte ?
Tu sais déjà que l'ordinateur ne connaît que des nombres (des 0 et des 1). Alors comment fait-il pour afficher des lettres ? C'est le sujet de ce TP !
L'astuce : un tableau de correspondance
L'idée est simple : on crée un tableau qui associe chaque nombre à une lettre. Par exemple, voici un mini-tableau que j'invente :
| Valeur décimale | Lettre |
|---|---|
| 0 | A |
| 1 | B |
| 2 | C |
| 3 | D |
Avec ce tableau, pour écrire "BAC", je stocke en mémoire les nombres 1, 0, 2. C'est une convention que j'ai inventée moi-même !
La vraie table : la table ASCII
Dans la vraie vie, on n'a pas eu à réinventer ça. Dans les années 1960, les ingénieurs ont créé la table ASCII (prononce : "as-ki"), qui est la première table de correspondance entre nombres et lettres utilisée en informatique.
Dans cette table, par exemple :
- La lettre A a le code décimal 65
- La lettre z (minuscule) a le code 122
- Le chiffre 0 (le caractère) a le code 48
- Le chiffre 9 (le caractère) a le code 57
🤔 Attention :
Le chiffre 42 comme nombre pour calculer, et le texte "42" comme texte à afficher, ce n'est pas la même chose en mémoire !
Texte vs Nombre : la différence
Imagine qu'on te demande de calculer "vingt plus vingt-deux". Tu dois d'abord convertir les mots en chiffres, faire le calcul, puis reconvertir le résultat en texte. L'ordinateur fait exactement la même chose !
En C#, on indique ce qu'on veut stocker en choisissant le type de la variable :
int calcul = 42; // un entier, pour faire des calculs string texte = "42"; // du texte, pour afficher ou manipuler
Les types de base :
-
int= nombre entier (sur 32 bits = 4 octets) -
string= chaîne de caractères (du texte) -
var= le compilateur choisit automatiquement le bon type
Conversion entre types
Si tu veux transformer du texte en nombre pour faire un calcul, tu dois utiliser la méthode Convert.ToInt32().
string texteAge = "15"; int age = Convert.ToInt32(texteAge); // Convertit "15" en nombre 15 int ageDansUnAn = age + 1; // Maintenant on peut calculer ! Console.WriteLine(ageDansUnAn); // Affiche 16
C'est à ton tour — TP 02
Crée un nouveau projet C# appelé TP02 et essaie ce programme :
using System; class Program { public static void Main(string[] args) { int prix = 10; int quantite = 3; int total = prix * quantite; string message = "Le total est de " + total + " euros."; Console.WriteLine(message); // Essaie maintenant de convertir un string en int : string monAge = "12"; int age = Convert.ToInt32(monAge); Console.WriteLine("Dans 5 ans j'aurai " + (age + 5) + " ans."); } }
Expérimente !
Que se passe-t-il si tu écris var somme = "5" + "6"; ?
Tu obtiendras "56" et non pas 11 ! C'est parce que quand tu utilises + avec des textes (strings), ça les colle ensemble, ça ne les additionne pas.
À retenir
-
char= guillemets simples'A'(1 seul caractère). -
string= guillemets doubles"Texte"(plusieurs caractères). - La Table ASCII associe un numéro à chaque caractère.
-
On peut transformer un nombre en lettre avec
(char)numero.