Informatique, représentation des entiers, microprocesseurs, langage informatique, langage de bas niveau, langage C, entier positif, entier négatif, entier relatif, octet, bit, bug, Python, boutisme, mémorisation des octets, opération à trous
Dans ce chapitre nous allons aborder la représentation des entiers au niveau du microprocesseur, que l'on retrouve ensuite dans les langages dits de bas niveau tels que le langage C.
[...] Ainsi -79 et 177 s'écrivent de manière identique avec 8 bits. B. Seconde méthode : complément à puis à 2 Le complément à 1 consiste à inverser tous les bits : 0 devient 1 et 1 devient 0. Ainsi le complément à 1 de 43 qui s'écrit 00101011(2) est 11010100(2). L'opposé d'un nombre est alors son complément à 1 augmenté de 1 (on parle de complément à 2 dans ce cas). Ainsi, l'opposé du nombre 43 est alors 11010100(2) + 1 = 11010101(2) et par conséquent -43 s'écrit 11010101(2) sur 8 bits. [...]
[...] On se retrouve ainsi avec 11111111 + 00000001(2) = 100000000(2) ≡ 0 sur 8 bits Ainsi, pour pouvoir respecter les propriétés de l'addition, il faut considérer que 1 s'écrit 11111111 en 8 bits Remarque 11111111(2) + = 100000000(2) en base c'est-à-dire 28 = 256. Le fait que 100000000(2) soit identifié à 0 en 8 bits, fait que l'on travaille modulo 256. III. Écriture des nombres négatifs en base 2 Plusieurs méthodes sont applicables pour écrire un nombre négatif en base 2. A. Première méthode : travailler modulo L'opposé d'un nombre positif n en 8 bits est 2⁸ - qu'il suffit de convertir en base 2 avec 8 bits si nécessaire. On dit qu'on calcule modulo 2⁸. [...]
[...] Le complément à 1 augmenté de 1 est bien l'opposé de x. C. Troisième méthode : l'opération à trous Pour obtenir l'écriture d'un nombre négatif, on complète l'addition avec son opposé positif en cherchant à obtenir 0 (en ou 64 bits). Cherchons par exemple à écrire -38 sur 8 bits sachant que 38 s'écrit 00100110(2) + . ━━━━━━━━━━━ .00000000 qui conduit à : 00100110 + 11011010 ━━━━━━━━━━━ (1)00000000 Ainsi -38 s'écrit 11011010(2) sur 8 bits et 1111111111011010(2) sur 16 bits en complétant avec des 1 devant. [...]
[...] Voici un exemple : 01010011 + 00111010 ━━━━━━━━━━ 10001101 Remarques On conçoit facilement que suivant les nombres utilisés, la taille de ou 64 bits peut s'avérer parfois insuffisante et entraîner des bugs si elle n'est pas correctement anticipée par le programmeur. Heureusement en Python, ce problème ne se pose pas. Le type int permet en effet de manipuler tous les entiers du moment que la mémoire vive de l'ordinateur est disponible. L'ordre de mémorisation des octets qui compose un nombre peut aussi varier suivant les microprocesseurs, on parle alors de boutisme. Sur l'architecture Intel, dite petit- boutiste l'entier 12345678(16) se retrouve mémorisé ainsi : 78(16), 56(16), 34(16), 12(16). [...]
Source aux normes APA
Pour votre bibliographieLecture en ligne
avec notre liseuse dédiée !Contenu vérifié
par notre comité de lecture