Représentation des nombres et codage des informations. Correction I. Entrainement aux conversions (changement de base) Q1. Réaliser les conversions suivantes Décimal Hexadécimal Binaire Binaire 247 1111 0111 4F5A0100 1111 0101 1001 100 00000011 1027 10011100 001111119C3F Binaire : Binaire : Décimal : Hexadécimal : Décimal Hexadécimal : 523 20B (2 méthodes : il faudra ensuite choisir la plus efficace) Hexadécimal Décimal : A80 2688 (2 méthodes : il faudra ensuite choisir la plus efficace) Décimal Binaire signé 16 bits : -36 1111 1111 1101 1100 II. Codage des réels/norme IEEE -754 simple précision Q2. a/ Coder 3,68∙ 103 (10) selon la norme selon la norme IEEE -754 simple précision en binaire ou en hexadécimal 3,68∙ 103 (10) =45660000(16) IEEE754 simple précision b/ Coder -0,05(10) selon la norme selon la norme IEEE -754 simple précision en binaire ou en hexadécimal -0,05(10) =BD4CCCCC(16) IEEE754 simple précision si on arrondit par défaut -0,05(10) =BD4CCCCD(16) IEEE754 simple précision si on arrondit par excès Q3. a/ Soit la valeur hexadécimale suivante : C141000016 IEEE754 correspondante selon la norme IEEE -754 simple précision. simple précision . Déterminer la valeur décimale simple précision . Déterminer la valeur décimale C1410000(16) IEEE754 simple précision = −12,0625 (10) b/ Soit la valeur hexadécimale suivante : 463F680016 IEEE754 correspondante selon la norme IEEE -754 simple précision. 463F6800 (16) IEEE754 simple précision = 1225010 ATS Info 20TD_CodageInformation_Correction 1/4 III. Les opérations en binaire ou en hexadécimal Q4. Réaliser les additions suivantes: En binaire signé sur 6bits 110110+011000= 32 16 8 4 2 1 1 0 0 1 0 0 0 1 1 1 0 0 1 0 1 0 1 0 + 1 32 1 0 0 16 1 1 0 8 0 1 1 4 1 0 1 2 1 0 1 Conversion en décimal valeur négative complément à 1 complément à 2 1 0 0 0 Conversion en décimal -10 10 Conversion de binaire signé en décimal -10 24 +14 sur 6bits Le résultat interprété sur 6 bits est cohérent puisqu’en décimal -10+24 est bien égal à +14. En binaire non signé sur 6bits 110110+011000= + 1 32 1 0 0 16 1 1 0 8 0 1 1 4 1 0 1 2 1 0 1 1 0 0 0 Conversion de binaire non signé en décimal 54 24 +78 sur 7bits +14 sur 6bits Le résultat interprété sur 6bits n’est pas cohérent, il faut prendre en compte le bit de débordement pour l’interprétation. En hexadécimal non signé sur 16bits AE41+47FB= 323 A 4 F 162 E 7 6 161 4 F 3 160=1 1 B C Conversion d’hexadécimal non signé en décimal 44609 18427 63036 Le résultat interprété en décimal est cohérent puisque 44609 + 18427 est bien égal à 63036. IV. Type d'une variable / ensemble des valeurs possibles et codage Q5. Déterminer l'ensemble des valeurs possibles ainsi que les valeurs extrêmes pour les variables suivantes. Variable de type entier non signé sur 8 bits. Nombre de valeurs possibles : 2n =28 =256 Valeurs extrêmes 0 à 2n -1 ou 0 à 255. Variable de type entier signé sur 8 bits. Nombre de valeurs possibles : 2n =28 =256 Valeurs extrêmes -2n-1 à 2n-1 -1 ou -128 à +127 Variable de type réel positif codé en virgule fixe sur 5 bits avec 2 bits significatifs après la virgule Nombre de valeurs possibles : 2n =25 =32 Valeurs extrêmes 000,00 à +111,11 ou 0 à 7,75 ATS Info 20TD_CodageInformation_Correction 2/4 V. Résolution d'une balance numérique Q6. On souhaite concevoir une balance numérique capable de peser des éléments entre 0 et 5kg avec une résolution de +/- 1g. Q7. Combien de bit minimum devra-t-on utiliser pour obtenir la résolution du cahier des charges. On a besoin d'une valeur tous les 2 g donc il faut 5000/2 =2500 valeurs = 2 n n étant le nombre de bits. solution 1 : 2n =2500 ln(2n)=ln(2500) n.ln(2)=ln(2500) n=ln(2500)/ln(2)=11,29 Il faudra donc 12 bits au minimum. solution 2 : On recherche par essai successif une valeur de n telle que 2n soit le plus proche de 2500. On trouve 2 11 =2048et 212 =4096. En conclusion 11bits ne suffissent pas. On prendra alors 12 bits. VI. Internet et adresse IP Les adresses IP (Internet Protocol) permettent d'identifier les ordinateurs sur internet. La norme IPv4 donne les adresses sont la forme de 4 nombres compris entre 0 et 255 séparés par des points. Voici un exemple d'adresse : 192.168.2.45 Q8. Déterminer le nombre de bits nécessaire. En déduire le nombre d'ordinateur que l'on peut connecter simultanément. Est-ce satisfaisant? Il faut 4 octets ou 32 bits pour coder une adresse en IPv4 : cela permet la communication entre 2 32=4,3.109 = 4,3 milliards d'ordinateurs. La population mondiale actuelle est estimée à 7,35 milliards. Une nouvelle norme IPv6 a été mise en place. Il s'agit de 128 bits. 2128=3.4.1038 ordinateurs. C'est un nombre quasi infini comparé à la population mondiale. ATS Info 20TD_CodageInformation_Correction 3/4 Annexe pour information : conversions de base avec Scilab Conversion binaire décimal y=bin2dec(str) str : a matrix of strings containing only characters '1' and '0'(matrix= matrice ou tableau; string = chaine de caractère) y : a matrix of doubles, positive integer values (integer = entier) Example : str='1010110'; y=bin2dec(str) Conversion décimal binaire str=dec2bin(x) Conversion hexadécimal décimal d=hex2dec(h) h : matrix of strings corresponding to hexadecimal representation d : matrix of doubles, positive integer values Conversion décimal hexadécimal h=dec2hex(d) Utilisation de l'aide scilab Pour plus d'information sur le langage, il faut consulter l'aide de scilab. Pour cela , choisir dans le menu de la console : ?\aide scilab ou touche F1 Cliquer sur la loupe et saisir une instruction (par exemple ci-dessous "dec2hex") puis valider par la touche entrée. Choisir parmi les propositions l'instruction dec2hex les explications détaillées sont données et un exemple est proposé. En cliquant sur le bouton , l'exemple sera exécuté dans la console. On peut voir les résultats cidessous dans la fenêtre de droite. L'argument de l'instruction ([2748 10;11 3]) est une matrice ou un tableau de 2 lignes et 2 colonnes rempli de la manière suivante : 2748 11 ATS Info 20TD_CodageInformation_Correction 10 3 4/4