Simple Video Gris
Transcription
Simple Video Gris
SI4 Programmation de base [email protected] (2016) Chapitre 2 Systèmes programmables (1) Que faut-il pour programmer ? (1) Que faut-il pour programmer ? ● Un système programmable est constitué de : – Plusieurs étapes – Un compteur – D'aiguillage (choix ou conditions) – Exemple : recette de cuisine ● 1) Casser les œufs dans un plat ● 2) Mélanger la farine ● 3) Ajouter le lait... (1) Que faut-il pour programmer ? ● Un système programmable est constitué de : CPU : Central Processing Unit Le microprocesseur traite les Les instructions et les données Selon un programme fourni. RAM: Random Access Memory Le mémoire vive contient à Chaque adresse, une donnée. Elle est modifiable et s'efface Lors d'une coupure électrique. ROM: Read Only Memory Le mémoire morte contient un Code non-modifiable. Souvent, Il s'agit des instructions pour Démarrer l'ordinateur et trouver Les périphériques : le BIOS. (1) Que faut-il pour programmer ? ● Un système programmable est constitué : Clock : Horloge L'horloge permet de faire changer les états (instructions suivantes, etc.). BUS : Ensemble de conducteur 8 bits, 16 bits, 32 puis 64 bits, il permet aux périphériques de communiquer ensemble. Périphériques : Les périphériques permettent Au système de recevoir et d'envoyer des informations vers les systèmes utilisateurs (humains, automates, autres ordinateurs...). (2) Comment structurer les données ? (2) Comment structurer les données ? ● Les chiffres – Romains : I, II, III, IV, V… → il manque le "zéro" – Arabes : 0, 1, 2… 9 → système dit décimal (base 10) – Binaire : 0, 1 → correspond à un état sur un fil → système binaire (base 2) – Hexadécimal : 0… 9, A...F → chaque nombre = 4 bits (2) Comment structurer les données ? ● Les nombres décimal hexadécimal binaire 102 101 100 2 1 8 2x cent 1x dix 8x un 22 21 20 = 218 1 0 1 =5 décimal 1x quatre 0x deux 1x un décimal 0 0 0 0 0 24 20 A F = 175 10x seize 15x un décimal 0 0 0 =0 décimal BUS 8 BITS 1 1 1 1 1 F 1 1 1 F = 255 décimal (2) Comment structurer les données ? ● Les nombres en RAM – – 8 bits = 1 octet (byte) 1 octet → ● ● 0 à 255 (Non signé) -128 à 127 (Signé) Adresse (@) 27 26 25 24 23 22 21 20 0000 0 1 0 0 0 0 0 1 = 65 0001 0 1 0 0 1 1 0 0 = 76 0002 0 1 0 0 1 1 0 0 0003 0 1 0 0 1 1 0 0 0004 0 0 0 0 0 0 0 0 ... FFFE FFFF décimal décimal = 76 décimal = 79 décimal =0 décimal (2) Comment structurer les données ? Les nombres en RAM – Que se passe-t-il en cas de dépassement ? – 0, 1, 2, 3, 4, ……… 254, 255 et : 256 0 255 8 ● (2) Comment structurer les données ? ● Les nombres en RAM – – Compter au-delà de 255 : 215 214 2313 212 211 210 29 0 0 0 0 0 0 0 28 27 26 25 24 23 22 21 20 1 0 1 0 0 0 1 0 0 1 x 28 68 215 214 2313 212 211 210 29 1 1 1 1 1 1 255 x 2 8 1 324 28 27 26 25 24 23 22 21 20 1 0 1 0 0 0 1 0 0 68 65280 + 68 65348 (2) Comment structurer les données ? ● Les nombres en RAM – – Octet, Entier, Long [signés] ● Octet = 8 bits (-128 .. 127) ● Entier = 32 bits (-2 147 483 648 à +2 147 483 647) ● Long = 32 bits (-2 147 483 648 à +2 147 483 647) A Noter, sur les systèmes (processeurs) 64 bits ● Entier = 64 bits (-9223372036854775808 à +9223372036854775807) (2) Comment structurer les données ? ● Les nombres en RAM – Comment traiter un nombre décimal (à "virgule") ? https://fr.wikipedia.org/wiki/IEEE_754 – 32 bits ● 1 bit de signe (±) ● 8 bits pour l'exposant ● 23 bits pour la mantisse (2) Comment structurer les données ? ● Les phrases de texte en RAM – Caractères et chaînes de caractères : Code ASCII (1 octet par caractère) ● 27 26 25 24 23 22 21 20 27 26 25 24 23 22 21 20 27 26 25 24 23 22 21 20 0 1 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 "A" "B" X octets + 1 octet NULL Ø NULL (2) Comment structurer les données ? ● Les phrases de texte en RAM – Caractères et chaines de caractères : ● Unicode (2 octets par caractère, exemple UTF-8) 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20 215 214 213 212 211 210 29 28 27 26 25 24 23 22 21 20 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 "A" 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 "B" X octets x 2 + 2 octets NULL 215 214 .. 0 0 .. 21 20 .. 0 0 Ø NULL (3) Quelles opérations sur les données ? (3) Quelles opérations sur les données ? ● Opérations sur les données – – Opérations basiques : +, -, *, / ● Attention : selon le type de données, il peut y avoir une erreur ● Exemple : TYPEEntier = TYPEEntier * TYPEDecimal Opérations complexes : Cos(), Sin(), Square(), … ● – Dépend du langage de programmation Opérations Booléennes : & ● (ET) , | (OR), % (XOR), ! (NOT) Opérations propres au système binaire (3) Quelles opérations sur les données ? ● Opérations sur les données – Algèbre de Bool ● Opération bit à bit OR 27 26 25 24 23 22 21 20 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 1 1 1 0 1 1 1 (3) Quelles opérations sur les données ? ● Opérations sur les données – Algèbre de Bool ● Opération bit à bit AND 27 26 25 24 23 22 21 20 1 0 1 0 0 1 1 0 1 1 0 1 0 1 0 1 1 0 0 0 0 1 0 0 fin