Entier (informatique)

différents processeurs prennent en charge différents types de données intégrales. En règle générale, le matériel prend en charge les types signés et non signés, mais seulement un petit ensemble fixe de largeurs.

le tableau ci-dessus répertorie les largeurs de type intégrales prises en charge dans le matériel par les processeurs courants. Les langages de programmation de haut niveau offrent plus de possibilités. Il est courant d’avoir un type intégral « double largeur » qui a deux fois plus de bits que le plus grand type supporté par le matériel., De nombreuses langues ont également des types de champs de bits (un nombre spécifié de bits, généralement contraint d’être inférieur à la largeur maximale prise en charge par le matériel) et des types de plage (qui ne peuvent représenter que les entiers d’une plage spécifiée).

certaines langues, telles que Lisp, Smalltalk, REXX, Haskell, Python et Raku prennent en charge les entiers de précision arbitraires (également appelés entiers de précision infinie ou bignums)., D’autres langages qui ne prennent pas en charge ce concept en tant que construction de niveau supérieur peuvent avoir des bibliothèques disponibles pour représenter de très grands nombres en utilisant des tableaux de variables plus petites, telles que la classe BigInteger de Java ou le paquet « bigint » de Perl. Ceux-ci utilisent autant de mémoire de l’ordinateur que nécessaire pour stocker les nombres; cependant, un ordinateur n’a qu’une quantité finie de stockage, donc eux aussi ne peuvent représenter qu’un sous-ensemble fini des entiers mathématiques. Ces schémas prennent en charge de très grands nombres, par exemple un kilo-octet de mémoire pourrait être utilisé pour stocker des nombres jusqu’à 2466 chiffres décimaux.,

un type booléen ou Flag est un type qui ne peut représenter que deux valeurs: 0 et 1, généralement identifiées par false et true respectivement. Ce type peut être stocké en mémoire à l’aide d’un seul bit, mais on lui donne souvent un octet complet pour faciliter l’adressage et la vitesse d’accès.

Une quantité de quatre bits est connue sous le nom de grignotage (en mangeant, étant plus petit qu’une morsure) ou nybble (étant un jeu de mots sur la forme du mot octet). Un grignotage correspond à un chiffre en hexadécimal et contient un chiffre ou un code de signe en décimal codé binaire.,

octets et octetsEdit

principaux articles: octet et Octet (calcul)

le terme octet signifiait initialement « la plus petite unité de mémoire adressable ». Dans le passé, 5-, 6-, 7-, 8-, et 9 bits octets ont tous été utilisés. Il y a aussi eu des ordinateurs qui pouvaient adresser des bits individuels (« machine à adressage de bits »), ou qui ne pouvaient adresser que des quantités de 16 ou 32 bits (« machine à adressage de mots »). Le terme octet n’était généralement pas utilisé du tout en relation avec les machines adressées aux bits et aux mots.

le terme octet fait toujours référence à une quantité de 8 bits., Il est principalement utilisé dans le domaine de la mise en réseau informatique, où les ordinateurs avec différentes largeurs d’octets peuvent avoir à communiquer.

dans l’usage moderne, octet signifie presque invariablement huit bits, car toutes les autres tailles sont tombées en désuétude; ainsi octet est devenu synonyme d’octet.

WordsEdit

Main article: Word (computer architecture)

pratiquement tous les nouveaux processeurs de bureau sont capables d’utiliser des mots 64 bits, bien que les processeurs intégrés avec une taille de mot de 8 et 16 bits soient encore courants. La longueur de mot 36 bits était courante dans les premiers jours des ordinateurs.,

Une cause importante de non-portabilité du logiciel est l’hypothèse erronée que tous les ordinateurs ont la même taille de mot que l’ordinateur utilisé par le programmeur. Par exemple, si un programmeur utilisant le langage C déclare incorrectement comme int une variable qui sera utilisée pour stocker des valeurs supérieures à 215-1, le programme échouera sur les ordinateurs avec des entiers 16 bits. Cette variable aurait dû être déclarée aussi longue, qui a au moins 32 bits sur n’importe quel ordinateur., Les programmeurs peuvent également supposer à tort qu’un pointeur peut être converti en entier sans perte d’informations, ce qui peut fonctionner sur (certains) ordinateurs 32 bits, mais échouer sur les ordinateurs 64 bits avec des pointeurs 64 bits et des entiers 32 bits. Ce problème est résolu par C99 dans stdint.h sous la forme de intptr_t.

short integerEdit

un entier court peut représenter un nombre entier qui peut prendre moins de stockage, tout en ayant une plage plus petite, par rapport à un entier standard sur la même machine.

en C, il est noté par court., Il doit être d’au moins 16 bits et est souvent plus petit qu’un entier standard, mais ce n’est pas nécessaire. Un programme conforme peut supposer qu’il peut stocker en toute sécurité des valeurs entre −(215-1) et 215-1, mais il peut ne pas supposer que la plage n’est pas plus grande. En Java, un court est toujours un entier de 16 bits. Dans L’API Windows, le type de données court est défini comme un entier signé de 16 bits sur toutes les machines.,>−32,768

+32,767 ushort unsigned 2 0 65,535 Java short signed 2 −32,768 +32,767

Long integerEdit

A long integer can represent a whole integer whose range is greater than or equal to that of a standard integer on the same machine.,

en C, il est noté par long. Il doit être d’au moins 32 bits et peut être supérieur ou non à un entier standard. Un programme conforme peut supposer qu’il peut stocker en toute sécurité des valeurs entre −(231-1) et 231-1, mais il peut ne pas supposer que la plage n’est pas plus grande.

Long longEdit

« long long » redirige ici. Il ne doit pas être confondu avec long ou Long, Long, Long.,

dans la version C99 du langage de programmation C et la version C++11 de C++, Un typelong longqui a le double de la capacité minimale de la normelong est pris en charge. Ce type n’est pas pris en charge par les compilateurs qui nécessitent que le code C soit conforme à la norme C++ précédente, C++03, car le type long long n’existait pas en C++03. Pour un compilateur conforme à la norme ANSI / ISO, les exigences minimales pour les plages spécifiées, c’est −à-dire – (263-1) à 263-1 pour signé et 0 à 264-1 pour non signé, doivent être remplies; cependant, l’extension de cette plage est autorisée., Cela peut être un problème lors de l’échange de code et de données entre les plates-formes ou de l’accès direct au matériel. Ainsi, il existe plusieurs ensembles d’en-têtes fournissant des types de largeur exacte indépendants de la plate-forme. La bibliothèque standard C fournit stdint.h; ceci a été introduit dans C99 et C++11.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *