Entier (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Entier (homonymie).

En informatique, le terme entier est utilisé pour désigner un type de donnée qui représente un sous-ensemble fini de nombres entiers relatifs. On utilise aussi le terme type de données entières (integral type data).

Historique[modifier | modifier le code]

Certains traitements comme le recensement des États-Unis ont d'abord été effectués en utilisant le décimal à l'aide de bits codés dans des cartes perforées. Chaque chiffre était alors représenté par un bit. Dans cette logique, pour ajouter un, il faut décaler un bit[1].

Voir aussi IBM 1620.

Le développement de l'industrie a ensuite conduit à l'apparition de l'entier court codé par combinaison de bits.

Représentation[modifier | modifier le code]

Un ordinateur moderne utilise des tensions électriques pour gérer ses données. En théorie, plusieurs tensions pourraient être utilisées pour représenter une information, mais en pratique on en n’utilise que deux. En effet, des problèmes de distorsion apparaitraient et empêcheraient de conserver l'information. De plus, les avancées technologiques tendent à réduire la tension afin d'éviter de chauffer les matériaux. On utilise donc deux niveaux de tension, qu'on appelle habituellement 0 et 1.

Pour manipuler des nombres avec les symboles 0 et 1, on doit faire appel non plus au système décimal mais au système binaire.

Calcul[modifier | modifier le code]

Le développement de ce système aboutit à des règles de calcul très efficaces.

Types d'entiers courants[modifier | modifier le code]

Bits Nom Intervalle (en supposant un complément à deux pour les signés) Nombre de chiffres en décimal Usages
4 nibble, semioctet ou quartet Signé : De -8 à 7, soit de -(2^3) à 2^3-1 1 Binary-coded decimal, single decimal kamal digit representation.
Non-signé : De 0 à 15 soit 2^4 -1 2
8 byte, octet Signé : De -128 à 127, soit de -(2^7) à 2^7-1 3 caractères ASCII , C/C++ char, C/C++ uint8_t, int8_t, C# byte, sbyte, T-SQL tinyint, Delphi Byte, Shortint, Java byte
Non-signé : De 0 à 255 soit 2^8 -1 3
16 halfword, word, short Signé : De -32 768 à 32 767, soit de -(2^{15}) à 2^{15}-1 5 caractères UCS-2, short en C/C++, C/C++ int (minimum), C/C++ uint16_t, int16_t, C# short, ushort, Delphi Word, Smallint, T-SQL smallint, Java char/short
Non-signé : De 0 à 65 535 soit 2^{16} -1 5
32 word, long, doubleword, longword, int Signé : De -2 147 483 648 à 2 147 483 647, soit de -(2^{31}) à 2^{31}-1 10 caractères UCS-4, Truecolor avec alpha, C/C++ int (avec certains compilateurs, 32 et 64 bit)[2], C/C++ long (sur Windows et DOS 32-bit et Unix), C/C++ uint32_t, int32_t, C# int, uint, FourCC, Delphi Cardinal, Integer, LongWord, LongInt, T-SQL int, Java int
Non-signé : De 0 à 4 294 967 295 soit 2^{32} -1 10
64 doubleword, longword, long long, quad, quadword, int64 Signé : De -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807, soit de -(2^{63}) à 2^{63}-1 19 C/C++ long, C/C++ long long, C/C++ uint64_t, int64_t, C# long, ulong, Delphi Int64, T-SQL bigint, Java long
Non-signé : De 0 à 18 446 744 073 709 551 615 soit 2^{64} -1 20
128 octaword, double quadword Signé : De -170 141 183 460 469 231 731 687 303 715 884 105 728 à 170 141 183 460 469 231 731 687 303 715 884 105 727, soit de -(2^{127}) à 2^{127}-1 39 Disponible en C uniquement via certains compilateurs, en non-standard
Non-signé : De 0 à 340 282 366 920 938 463 463 374 607 431 768 211 455 soit 2^{128} -1 39
n n-bit integer
(cas général)
Signé : De (-2^{n-1}) à (2^{n-1} -1) \lceil (n-1) \log_{10}{2} \rceil Ada range -2**(n-1)..2**(n-1)-1
Non-signé : De 0 à (2^{n}-1) \lceil n \log_{10}{2} \rceil Ada range 0..2**n-1, Ada mod 2**n
? bignum entier de précision arbitraire infini Tous usages, avec quelques pertes de performances. Langages: Python, Perl, Haskell, Ruby…

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. http://www.arnakazim.com/resume-histoire-ordinateur/
  2. "On compilers for 32 bit and larger processors (including Intel x86 processors executing in 32 bit mode, such as Win32 or Linux) an int is usually 32 bits long and has exactly the same representation as a long." The Int Types Jack Klein, Integer Types In C and C++, http://jk-technology.com/c/inttypes.html (c) 2008