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

Documents pareils