Université de Nice – Sophia Antipolis Licence 1 Sciences Fondamentales 2013­2014 Informatique Générale TD n° 4 1. Codage compact de petits ensembles On veut utiliser un entier codé sur N bits bn­1bn­2...b1b0 pour représenter des ensembles de N éléments, chaque élément étant codé par une valeur entre 0 et N­1. L'élément k sera présent dans l'ensemble si bk est à 1, et pas présent si bk vaut 0. Par exemple, sur 8 bits, le nombre 25, soit 00011010 en binaire, représentera l'ensemble {1, 3, 4} puisque b1, b3 et b4 sont à 1. a. Quelles opérations booléennes correspondent à l'union, l'intersection, la différence et la complémentation par rapport à l'ensemble {0:N­1} ? b. Quelles opérations permettent de savoir si un ensemble est inclus dans un autre ? c. Par quelles opérations peut­on ajouter un élément à un ensemble ? d. Par quelles opérations peut­on réaliser le test d'appartenance d'un élément à un ensemble ? 2. Retour sur la représentation entière signée et non signée La complémentation à 2 sur n bits pour les entiers permet de calculer modulo 2 n, c'est à dire que les opérations arithmétiques donnent le même résultat binaire, que l'on considère des nombres non signés (sur n bits) ou des nombres signés (sur n­1 bit + le bit de signe). Autrement dit, 011...11 + 1 (2n­1­1 + 1) donne toujours 100...00, qui peut être interprété comme 2 n­1 ou comme ­2n­1, selon qu'on le considère comme non signé ou signé. De même, si à 11...11 (2 n­1 si non signé, ­1 si signé), on ajoute 1, on aura 00...00 (la dernière retenue est perdue), c'est à dire 0. On considère des nombres entiers représentés sur 16 bits. Rappelons que 216 = 65536, et 215 = 32768. a. Donnez l'intervalle des entiers représentables sur 16 bits en mode signé et en mode non signé. b. Indiquez (en décimal) à quelle représentation non signée (sur 16 bits) correspondent les nombres suivants, et en déduire leur représentation binaire (sur 16 bits). • ­2 • ­32767 • ­16384 c. Que vaut (entiers signés) • (215­1)+2 • ­215­215 2. Représentation binaire flottante On considère une représentation sur 16 bits, avec une mantisse m sur 12 bits (non signée), et un exposant x sur 4 bits avec un biais b de 8 (donc le nombre représenté est m.2x­8). Par la suite, on représentera un nombre binaire flottant par a. Que représente en décimal b. Et c. d. e. f. g. h. m0m1...m11 | x3x2x1x0 110000000000 | 0110 110100101011 | 1010 Quelle est la plus petite valeur > 0 représentable (en décimal) ? Quelle est la plus grande valeur représentable (en décimal) ? Comment serait représenté en binaire flottant 64 (26) ? Et 65 ? Et 260 ? Comment serait représenté en binaire flottant 15/32 ? Et 2,25 ? Idée : cherchez un entier n tel que n = 2,25×2k ; Et 16,015625 ? i. Pourquoi n'est­il pas possible de représenter 4097/32 = 128,03125 ? (4097=212+1) j. Et 512 ?