Introduction aux systèmes numériques Lesson 1 Représentation de l’information en numérique JELASSI. Khaled M.C Département Génie Electrique Laboratoire d’Informatique Industrielle, Postal : E.N.I.T BP N°37 1002 Tunis E-mail : Khaled.Jelassi@enit.rnu.tn
Table des matières Notions de numérotation et de base Bases 10, 2, 8, 16 Opérations Conversions Codage des information par calculateur Words et bytes (mots et octets) Opérations élémentaires sur octets Codage des entiers entiers Positifs entiers Négatifs Inversion complément à 1 complément à 2 opérations arithmétiques et overflow Codage des nombres Codage des réels Codage des caractères ASCII Codage 7bit et 8bit base 3, base 16, …
Numérotation Base Décimale Nombres dans une base B « humain » nombres (base 10) chiffres compris entre 0-9 Nombres ‘ successions de chiffres ’ chiffre positif pour le poids (puissance de 10 en général) Nombres dans une base B Convention de notation B < 10 Symboles 0-9 B >= 10 Symboles 0-9 + lettres (A, B, C, D, …) Exemples Base 2 1010101000110 Base 8 (octal) 102376530 Base 16 (hexadecimal) 98AF56B3E79D04 Formule Générale 1234 = 1x1000 + 2x100 + 3x10 +4 = 1x103 + 2x102 + 3x101 + 4x100 dndn-1…d2d1d0 = di x 10i i=0 n (dndn-1…d2d1d0)B = di x Bi i=0 n
Numérotation Nombres Binaires Nombres en octal Nombres traités par calculateur Calculateur comprend uniquement 2 chiffres Seulement 2 chiffres (0 and 1) Base = 2 Nombres en octal Plus simple à représenter qu ’en binaire Puissance de 2 représentation compact 1 chiffre octal comprend trois chiffre binaires Base 8 (octal) 10100101 = 1x27 + 1x25 + 1x22 + 1x20 = 128 + 32 + 4 + 1 = 16510 7320468 = 7x85 + 3x84 + 2x83 + 4x81 + 6x80 = 7x32768 + 3x4096 + 2x512 + 4x8 + 6x1 = 229376 + 12288 + 1024 + 32 + 6 = 242726
Numérotation Nombre en Octal 0 = 000 1 = 001 2 = 010 3 = 011 4 = 100 8 = 23 1 chiffre octal représente 3 chiffres binaires 3 chiffre en octal pour un octet ‘ byte ’ « un bit sera perdu » Octal <-> Binaire ‘ conversion ’ Conversion octal -> binaire 7320468 = 1110110100001001102 Conversion binaire -> octal 10100110001110102 = 1230728 0 = 000 1 = 001 2 = 010 3 = 011 4 = 100 5 = 101 6 = 110 7 = 111 7 3 2 0 4 6 111 011 010 000 100 110 (00)1 010 011 000 111 010 1 2 3 7
Numérotation Base Hexadécimale Simplifie encore la représentation ‘ code visuel ’ Puissance de 2 Représentation Compact des nombres binaires un chiffre hexa représente 4 chiffres binaires Base 16 16 = 24 1 chiffre hexa représente 4 chiffres binaires 2 chiffres hexa représentent 1 octet ‘ byte ’ plus compact que la base représentation en octal « pas de bit perdu » Conversion Hexa <-> binaire Conversion hexa -> binaire E6F30B = Ex165 + 6x164 + Fx163 + 3x162 + Bx160 = 14x165 + 6x164 + 15x163 + 3x162 + 11x160 = 14x1048576 + 6x65536 + 15x4096 + 3x256 + 11 = 15135499 0 = 0000 4 = 0100 8 = 1000 C = 1100 1 = 0001 5 = 0101 9 = 1001 D = 1101 2 = 0010 6 = 0110 A = 1010 E = 1110 3 = 0011 7 = 0111 B = 1011 F = 1111 E6F30B16 = 1110011011110011000010112 E 6 F 3 0 B 1110 0110 1111 0011 0000 1011
Numérotation Base Hexadécimale 1010 0110 0011 1010 A 6 3 A Conversion binaire -> hexa 10100110001110102 = A63A16 1010 0110 0011 1010 A 6 3 A
OPERATIONS ARITH. Opérations arithmétiques 721 + 297 1018 1011010001 Similaires aux opérations dans la base 10 Chiffres limités à la base B Exemple Décimal Binaire Octal Hexadécimal 721 + 297 1018 1011010001 + 0100101001 1111111010 = 101810 1321 + 0451 17728 = 101810 2D1 + 129 3FA16 = 101810
Numérotation Conversions (dndn-1…d2d1d0)B = di x Bi 1966 16 Décimale à la base B Suite des restes de div. successives par B Exemple Comment représenter 196610 en hexadecimal ? (dndn-1…d2d1d0)B = di x Bi i=0 n 1966 16 122 16 36 112 7 32 10 46 32 14 196610 = 7AE16
Numérotation Conversion (dndn-1…d2d1d0)B = di x Bi q0 = d0 Base B vers base Décimale Calcul des sommes Si on Inverse le process Exemple Comment représenter 7AE16 en décimal ? Par Sommation Par Division (dndn-1…d2d1d0)B = di x Bi i=0 n q0 = d0 q1 = q0xB + d1 q2 = q1xB + d2 … qn = qn-1xB + dn 7AE16 = 7x162 + 10x16 + 14 = 196610 q0 = 7 q1 = 7x16 + 10 = 122 q2 = 122x16 + 14 = 1966
Numérotation Conversion de base Conversions entre Base B et Base n Chiffres en base B groupés par n chiffres Binaire Octal Groupement de chiffres binaires par groupe de 3 Binaire Hexadécimal Groupement de chiffres binaires par groupe de Octal Binaire Représentation du chiffre octal en binaire Hexadécimal Binaire Représentation du chiffre hexa en binaire
Codage des variables Words et Bytes ‘ mots et octets ’ b0 b7 b6 b5 b4 Information (caractères, nombres, …) stockés en cellules mémoire la cellule et l ’unité adressable la plus petite de la mémoire d ’un calculateur Cellule est composé de n bits Bit = binary digit (0 ou 1) Exemples Octet = Cellule 8-bit structure interne d ’une cellule de n-bits Words La cellule n ’est pas assez « large » pour représenter des ‘ integers ’, ‘ reals ’, caractères Groupement (concaténation) de cellules(bytes) Lecture/écriture de/vers mémoire Manipulation par instructions b0 b7 b6 b5 b4 b3 b2 b1 Most Significant Bit Least
Opérations sur octets opérations logiques NOT AND OR XOR opérations de décalages SHR, SHL, ROR, ROL, RLC, RRC décalage à droite décalage à gauche rotation à droite rotation à gauche
Codage des entiers Entiers Positifs Entiers Négatives 27 = 00011011 valeur limitée à la taille d ’un mot de 16 bits N-bits word 2n valeurs possibles Byte 8 bits 28 valeurs possibles values Entiers Négatives bit de Signe nécessaire MSB est un bit de signe 0 = nombre positif 1 = nombre négatif Cellule mémoire de N-bits Bit n est le bit de signe les n-1 bits restant représentent la valeur absolue -2n-1 < range < 2n-1 Le chiffre zéro peut être codé par: 00000000 10000000 Opérations Arithmétiques Exemples 27 = 00011011 -27 = 10011011 127 = 01111111 -127 = 11111111
Codage des entiers Entiers Négatifs 00100010 = 34 + 10010110 = -105 1-Complement Inverser chaque bit de l ’entier positif bit = 1 – bit MSB = bit de signe Cellule mémoire N-bits Bit n est le bit de signe 0 -> positif 1 -> négatif n-1 bits pour stocker la valeur -2n-1 < range < 2n-1 2 codages possibles pour la valeur 0 00000000 11111111 Exemples 27 = 00011011 -> -27 = 11100100 127 = 01111111 -> -127 = 10000000 Opérations Arithmétiques 00100010 = 34 + 10010110 = -105 = 10111000 = -71 01111111 = 127 + 11110000 = -15 = 1 01101111 = 111 + 1 = 01110000 = 112
Codage des entiers Entiers Négatifs 00100010 = 34 + 10010111 = -105 Complément à 2 Inverser chaque bit de l ’entier positif, ajouter 1 MSB = bit de signe cellule de N-bits Bit n est le bit de signe 0 -> positif 1 -> négatif restent n-1 bits pour stocker la valeur -2n-1 <= range < 2n-1 plage asymétrique un seul codage pour 0 00000000 Exemples 27 = 00011011 -> -27 = 11100101 127 = 01111111 -> -127 = 10000001 1 = 00000001 -> -1 = 11111111 -128 = 10000000 Opérations Arithmétiques 00100010 = 34 + 10010111 = -105 = 10111001 = -71 01111111 = 127 + 11110001 = -15 = 1 01110000 = 112
Codage des entiers Overflow 01111111 = 127 + 01111111 = 127 Cellule N-bit -> limite la plage du nombre 1-complement : ] -2n-1, 2n-1 [ 2-complement : [ -2n-1, 2n-1 [ cellule de 8 bits = byte (n = 8) 127 + 127 = 254 >= 128 !!!! -111 + -78 = -189 <= 128 !!!! Solutions représentation sur plusieurs octets librairie mathématique spéciale 01111111 = 127 + 01111111 = 127 = 1 11111110 = -2 ??? 10010001 = -111 + 10110010 = -78 = 1 01000011 = 67 ???
Codage sur des octets Nombre > plage de la cellule Cellule = byte (n = 8) 576 >= 2n-1 = 128 Concaténer plusieurs octets pour un nombre 2 bytes -> n=16 -> [ -215, 215 [ = [ -32768,32768 [ 4 bytes -> n=32 -> [ -231, 231 [ = [ -2x109,2x109 [ 8 bytes -> n=64 -> [ -263, 263 [ = [ -8x1018,8x1018 [ Les microprocesseurs comprennent: instructions arithmétiques manipulant des mots de: 1, 2, 4 octets Langages de programmation: Notion de short integer, integer, long integer Librairies spéciales Fonctions spécifiques de manipulation des entiers de n’importe quelle taille
(dndn-1…d2d1d0,d-1 d-2…d-m)B = di x Bi Codage des Réels Notations Notation par virgule fixe Fraction se fait par le point ou la virgule Formule Générale Similaire à celle des nombres entiers Exemple Notation Scientifique ‘ virgule flottante ’ Nombre = m x 10e m = mantisse (nombre à virgule fixe) e = exposant « corrige » la valeur de la mantisse Exemples 3,1415 = 3,1415 x 100 = 0,31415 x 101 = 31,415 x 10-1 -0,002678 = -2,678 x 10-3 10000 = 1 x 104 = 10 x 103 0,1 x 10-68 plusieurs représentations du même nombre normalisation de la représentation est alors nécessaire n (dndn-1…d2d1d0,d-1 d-2…d-m)B = di x Bi i=-m 123,45 = 1x102 + 2x101 + 3x100 + 4x10-1 + 5x10-2 = 100 + 20 + 3 + 0,4 + 0,05
Codage des Réels Virgule Fixe 01101110 = 0 1 1 0 . 1 1 1 0 = 6,875 6 Le point fractionnaire est implicitement fixé à la position k k > 0 Nombre divisé par 2k k = 0 Equivalent à la représentation entière classique k < 0 Nombre multiplié par 2k Exemples k = 4 k= -4 Problèmes k fixé k << : précision médiocre pour les petits nombres k >> : bonne précision pour les petits nombres mais la plage est limitée 01101110 = 0 1 1 0 . 1 1 1 0 = 6,875 6 2-1 2-2 2-3 2-4 0,5 + 0,25 + 0,125 = 0,875 01101110 = 011011100000 = 1760
Codage des Réels Méthode par virgule flottante 2p-1 ………… 222120 m e’ s Basée sur la notation scientifique des humains 3 parties bit ‘s’ de signe exposant ‘e’ codage comme un nombre positive sur n bits mantisse m partie entière sur p bits nombre fractionnaire sur p bits Nombres négatives inverser bit de signe inverser tous les bits … Normalisation plusieurs représentations sont possibles mantisse MSB à gauche 2p-1 ………… 222120 Bit de signe exposant mantisse m e’ s 2-12-2………2-p+12-p s e’ m Bit de signe mantisse exposant
Codage des réels Virgule flottante Point de fraction Exemples (s,e,.m) = (1bit,7bits,16bits) 237,0 = (27 + 26 + 25 + 23 + 22 + 20) Point de fraction 0 1010000 0000000011101101 2-9+2-10+2-11+2-13+2-14+2-16 e’ = 80 e = 80 – 64 = 16 mx2e = 216x(2-9+2-10+2-11+2-13+2-14+2-16) = 27+26+25+23+22+20 Point de fraction 0 1001000 1110110100000000 2-1+2-2+2-3+2-5+2-6+2-8 e’ = 72 e = 72 – 64 = 8 mx2e = 28x(2-1+2-2+2-3+2-5+2-6+2-8) = 27+26+25+23+22+20
Codage des Réels Virgule flottante Point de fraction Exemples (s, e, .m) = (1bit, 7bits, 16bits) 5,4140625 (22 + 20 + 2-2 + 2-3 + 2-5 + 2-7) Point de fraction 0 100011 1010110101000000 2-1+2-3+2-5+2-6+2-8+2-10 e’ = 67 e = 67 – 64 = 3 mx2d = 23x(2-1+2-3+2-5+2-6+2-8+2-10) = 22 + 20 + 2-2 + 2-3 + 2-5 + 2-7
Codage des caractères Représentation des caractères Représentation graphique «adoptée par l ’humain» lettres, chiffres, punctuations exemples a b c d … y z 0 1 … 8 9 ; : ? ! … Codage par calculateur chaque symbole est codé par un entier caractères graphiques lettres, chiffres, ponctuations caractères de contrôle hérites des protocoles de transmission plusieurs codages sont définis Plusieurs tables de différents caractères existent Codage sur 7-bit Codage sur 8-bit Codage multi-octets
Codage des caractères IA5 b8 b7 b6 b5 b4 b3 b2 b1 0-716 0-F16 ITU-T T.50, ANSI ASCII Codage sur 7-bits (par un octet) MSB set to 0 Convention de codage b8 b7 b6 b5 b4 b3 b2 b1 0-716 0-F16 1 2 3 4 5 6 7 NUL DLE SP P p SOH DC1 ! A Q a q STX DC2 " B R b r ETX DC3 # / £ C S c s EOT DC4 ¤/ $ D T d t ENQ NAK % E U e u ACK SYN & F V f v BEL ETB ' G W g w 8 BS CAN ( H X h x 9 HT EM ) I Y i y LF SUB * : J Z j z VT ESC + ; K k FF IS4 , < L l CR IS3 - = M m SO IS2 . > N n SI IS1 / ? O _ o DEL
Codage des caractères IA5 23 = # 24 = ¤ 40 = @ 5B = [ 5C = \ 5D = ] Version internationale Utilisation texte en Englais texte en Latin sans accents et sans caractères spéciaux (e.g. Allemand «ß») Exemple Université 23 = # 24 = ¤ 40 = @ 5B = [ 5C = \ 5D = ] 5E = ^ 60 = ` 7B = { 7C = | 7D = } 7E = ~ 55 6E 69 76 65 72 73 69 74 65
Codage des Caractères Teletex ITU-T T.61 initialement lié transmissions par télécopie Caractères de contrôle Caractères graphiques de Control en Latin Anglais, Français, Allemand, … Caractères graphiques Non alphabétiques chiffres, fractions, ponctuation, … Caractères de combinaison « ^ »
Codage des caractères Telecopie 1 2 3 4 5 6 7 8 9 A B C D E F NUL DLE 1 2 3 4 5 6 7 8 9 A B C D E F NUL DLE SP P p ° SOH DC1 ! Q a q ¡ ± ‘ Æ æ STX DC2 " R b r ¢ ² ’ ETX DC3 # / £ S c s £ ³ ^ EOT DC4 ¤/ $ T d t $ x ~ ENQ NAK % U e u ¥ µ ¯ ACK SYN & V f v # ¶ IJ ij BEL ETB ' G W g w § · BS CAN ( H X h ¤ ÷ HT EM ) I Y i y Ø ø LF SUB * : J Z j z VT ESC + ; K [ k « » ß FF IS4 , < L l | ¼ CR IS3 - = M ] m ½ SO IS2 . > N n ¾ Ŋ ŋ SI IS1 / ? O _ o DEL ¿