Un bit est un chiffre binaire qui représente l'un des deux états . Le concept de bit peut être compris comme une valeur de 1 ou 0 , activée ou désactivée , oui ou non , vraie ou fausse , ou codée par un commutateur ou une bascule d'une certaine sorte.
Alors qu'un seul bit ne peut représenter que deux valeurs, une chaîne de bits peut être utilisée pour représenter des valeurs plus importantes. Par exemple, une chaîne de trois bits peut représenter jusqu'à huit valeurs distinctes, comme illustré dans le tableau 1.
À mesure que le nombre de bits composant une chaîne augmente, le nombre de combinaisons possibles de 0 et 1 augmente de manière exponentielle . Un seul bit ne permet que deux combinaisons de valeurs, deux bits combinés peuvent donner quatre valeurs distinctes, trois bits pour huit, et ainsi de suite, en augmentant avec la formule 2 n . Le nombre de combinaisons possibles double à chaque chiffre binaire ajouté, comme illustré dans le tableau 2.
Les groupements avec un nombre spécifique de bits sont utilisés pour représenter différentes choses et ont des noms spécifiques.
Un octet est une chaîne de bits contenant le nombre de bits nécessaires pour représenter un caractère . Sur la plupart des ordinateurs modernes, il s'agit d'une chaîne de huit bits. Étant donné que la définition d'un octet est liée au nombre de bits composant un caractère, certains ordinateurs plus anciens ont utilisé une longueur de bit différente pour leur octet. Dans de nombreuses architectures informatiques , l'octet est la plus petite unité adressable , l'atome d'adressabilité, par exemple. Par exemple, même si les processeurs 64 bits peuvent adresser la mémoire soixante-quatre bits à la fois, ils peuvent toujours diviser cette mémoire en morceaux de huit bits. C'est ce qu'on appelle la mémoire adressable par octet. Historiquement, de nombreux processeurs lisent les données dans un multiple de huit bits. Étant donné que la taille d'octet de huit bits est si courante, mais que la définition n'est pas normalisée, le terme octet est parfois utilisé pour décrire explicitement une séquence de huit bits.
Un quartet (parfois nybble ) est un nombre composé de quatre bits. Étant un demi-octet , le quartet a été nommé ainsi en tant que jeu de mots. Une personne peut avoir besoin de plusieurs quartets pour une bouchée de quelque chose ; de même, un quartet est une partie d'un octet. Étant donné que quatre bits permettent d'obtenir seize valeurs, un quartet est parfois appelé chiffre hexadécimal .
Affichage des nombres octaux et hexadécimaux
Les codages octal et hexadécimal sont des moyens pratiques de représenter les nombres binaires, tels qu'utilisés par les ordinateurs. Les ingénieurs informaticiens ont souvent besoin d'écrire des quantités binaires, mais dans la pratique, écrire un nombre binaire tel que 1001001101010001 est fastidieux et sujet à des erreurs. Par conséquent, les quantités binaires sont écrites dans un format numérique en base 8, ou « octal », ou, beaucoup plus couramment, en base 16, « hexadécimal » ( hex ). Dans le système décimal, il y a 10 chiffres, de 0 à 9, qui se combinent pour former des nombres. Dans un système octal, il n'y a que 8 chiffres, de 0 à 7. Autrement dit, la valeur d'un « 10 » octal est la même que celle d'un « 8 » décimal, celle d'un « 20 » octal est celle d'un « 16 » décimal, et ainsi de suite. Dans un système hexadécimal, il y a 16 chiffres, de 0 à 9 suivis, par convention, de A à F. Autrement dit, un « 10 » hexadécimal est identique à un « 16 » décimal et un « 20 » hexadécimal est identique à un « 32 » décimal. Un exemple et une comparaison de nombres dans différentes bases sont décrits dans le tableau ci-dessous.
Lors de la saisie de nombres, des caractères de formatage sont utilisés pour décrire le système numérique, par exemple 000_0000B ou 0b000_00000 pour les nombres binaires et 0F8H ou 0xf8 pour les nombres hexadécimaux.
Conversion entre les bases
Tableau 3 : Comparaison des valeurs dans différentes bases
Décimal
Binaire
Octal
Hexadécimal
0
000000
00
00
1
000001
01
01
2
000010
02
02
3
000011
03
03
4
000100
04
04
5
000101
05
05
6
000110
06
06
7
000111
07
07
8
001000
10
08
9
001001
11
09
10
001010
12
0A
11
001011
13
0B
12
001100
14
0C
13
001101
15
0D
14
001110
16
0E
15
001111
17
0F Chacun de ces systèmes numériques est un système positionnel, mais alors que les poids décimaux sont des puissances de 10, les poids octaux sont des puissances de 8 et les poids hexadécimaux sont des puissances de 16. Pour convertir du système hexadécimal ou octal au système décimal, pour chaque chiffre, on multiplie la valeur du chiffre par la valeur de sa position, puis on additionne les résultats. Par exemple :
Représenter des fractions en binaire
Nombres à virgule fixe
Le formatage à virgule fixe peut être utile pour représenter des fractions en binaire.
Le nombre de bits nécessaires à la précision et à la plage souhaitées doit être choisi pour stocker les parties fractionnaires et entières d'un nombre. Par exemple, en utilisant un format 32 bits, 16 bits peuvent être utilisés pour l'entier et 16 pour la fraction.
Le bit huit est suivi du bit quatre, puis du bit deux, puis du bit un. Les bits fractionnaires continuent le modèle défini par les bits entiers. Le bit suivant est le bit demi, puis le bit quart, puis le bit ⅛, et ainsi de suite. Par exemple :
bits entiers
bits fractionnaires
0,500
=
1 / 2
=
00000000 00000000,10000000 00000000
1.250
=
1+ 1 / 4
=
00000000 00000001.01000000 00000000
7.375
=
7+ 3 / 8
=
00000000 00000111.01100000 00000000 Cette forme de codage ne peut pas représenter certaines valeurs en binaire. Par exemple, la fraction 1 / 5 , 0,2 en décimal, les approximations les plus proches seraient les suivantes :
13107 / 65536
=
00000000 00000000.00110011 00110011
=
0,1999969... en décimal
13108 / 65536
=
00000000 00000000.00110011 00110100
=
0,2000122... en décimal Même si davantage de chiffres sont utilisés, une représentation exacte est impossible. Le nombre 1 / 3 , écrit en décimal comme 0,333333333..., continue indéfiniment. Si elle est interrompue prématurément, la valeur ne représenterait pas 1 / 3 précisément.
Nombres à virgule flottante
Bien que les systèmes numériques utilisent à la fois des entiers signés et non signés, même un entier de 32 bits ne suffit pas à gérer toute la plage de nombres qu'une calculatrice peut gérer, et cela n'inclut même pas les fractions. Pour approcher la plage et la précision supérieures des nombres réels , nous devons abandonner les entiers signés et les nombres à virgule fixe et passer à un format « à virgule flottante ».
Dans le système décimal, nous connaissons les nombres à virgule flottante de la forme ( notation scientifique ) :
1,1030402 × 10 5 = 1,1030402 × 100000 = 110304,02
ou, de manière plus compacte :
1.1030402E5
ce qui signifie "1,1030402 fois 1 suivi de 5 zéros". Nous avons une certaine valeur numérique (1,1030402) appelée " mantisse ", multipliée par une puissance de 10 (E5, signifiant 10 5 ou 100 000), appelée " exposant ". Si nous avons un exposant négatif, cela signifie que le nombre est multiplié par un 1 placé plusieurs fois à droite de la virgule décimale. Par exemple :
2,3434E−6 = 2,3434 × 10 −6 = 2,3434 × 0,000001 = 0,0000023434
L'avantage de ce schéma est qu'en utilisant l'exposant, nous pouvons obtenir une plage de nombres beaucoup plus large, même si le nombre de chiffres de la mantisse, ou la « précision numérique », est bien plus petit que la plage. Des formats de virgule flottante binaire similaires peuvent être définis pour les ordinateurs. Il existe un certain nombre de ces schémas, le plus populaire a été défini par l'Institute of Electrical and Electronics Engineers (IEEE). La spécification standard IEEE 754-2008 définit un format de virgule flottante 64 bits avec :
un exposant binaire de 11 bits, utilisant le format « excess-1023 ». Excess-1023 signifie que l'exposant apparaît comme un entier binaire non signé de 0 à 2047 ; la soustraction de 1023 donne la valeur signée réelle
un significande de 52 bits, également un nombre binaire non signé, définissant une valeur fractionnaire avec un « 1 » implicite en tête
un bit de signe, donnant le signe du nombre.
Avec les bits stockés dans 8 octets de mémoire :
octet 0
S
x10
x9
x8
x7
x6
x5
x4
octet 1
x3
x2
x1
x0
m51
m50
m49
m48
octet 2
m47
m46
m45
m44
m43
m42
m41
m40
octet 3
m39
m38
m37
m36
m35
m34
m33
m32
octet 4
m31
m30
m29
m28
m27
m26
m25
m24
octet 5
m23
m22
m21
m20
m19
m18
m17
m16
octet 6
m15
m14
m13
m12
m11
m10
m9
m8
octet 7
m7
m6
m5
m4
m3
m2
m1
m0 où « S » désigne le bit de signe, « x » désigne un bit d'exposant et « m » désigne un bit de mantisse. Une fois les bits extraits, ils sont convertis avec le calcul :
<signe> × (1 + <significande fractionnaire>) × 2 <exposant> − 1023
Ce schéma fournit des nombres valables jusqu'à environ 15 chiffres décimaux, avec la plage de nombres suivante :
maximum
minimum
positif
1.797693134862231E+308
4.940656458412465E-324
négatif
-4.940656458412465E-324
-1.797693134862231E+308 La spécification définit également plusieurs valeurs spéciales qui ne sont pas des nombres définis et qui sont connues sous le nom de NaN , pour « Not A Number » (pas un nombre). Elles sont utilisées par les programmes pour désigner des opérations non valides et autres.
Certains programmes utilisent également des nombres à virgule flottante de 32 bits. Le schéma le plus courant utilise une mantisse de 23 bits avec un bit de signe, plus un exposant de 8 bits au format « excess-127 », ce qui donne sept chiffres décimaux valides.
octet 0
S
x7
x6
x5
x4
x3
x2
x1
octet 1
x0
m22
m21
m20
m19
m18
m17
m16
octet 2
m15
m14
m13
m12
m11
m10
m9
m8
octet 3
m7
m6
m5
m4
m3
m2
m1
m0 Les bits sont convertis en valeur numérique avec le calcul :
<signe> × (1 + <significande fractionnaire>) × 2 <exposant> − 127
conduisant à la plage de nombres suivante :
maximum
minimum
positif
3.402823E+38
2.802597E-45
négatif
-2.802597E-45
-3.402823E+38 Ces nombres à virgule flottante sont généralement appelés « réels » ou « flotteurs », mais avec un certain nombre de variantes :
Une valeur flottante de 32 bits est parfois appelée « real32 » ou « single », ce qui signifie « valeur à virgule flottante simple précision ».
Un flottant de 64 bits est parfois appelé « real64 » ou « double », ce qui signifie « valeur à virgule flottante double précision ».
La relation entre les nombres et les modèles de bits est choisie pour des raisons de commodité dans la manipulation informatique ; huit octets stockés dans la mémoire de l'ordinateur peuvent représenter un nombre réel de 64 bits, deux nombres réels de 32 bits, quatre entiers signés ou non signés, ou tout autre type de données qui tient dans huit octets. La seule différence réside dans la façon dont l'ordinateur les interprète. Si l'ordinateur stockait quatre entiers non signés puis les relisait en mémoire sous forme de nombre réel de 64 bits, il s'agirait presque toujours d'un nombre réel parfaitement valide, même s'il s'agirait de données inutiles.
Seule une plage finie de nombres réels peut être représentée avec un nombre donné de bits. Les opérations arithmétiques peuvent déborder ou être inférieures à la capacité maximale autorisée, produisant ainsi une valeur trop grande ou trop petite pour être représentée.
La représentation a une précision limitée. Par exemple, seuls 15 chiffres décimaux peuvent être représentés avec un nombre réel de 64 bits. Si un très petit nombre à virgule flottante est ajouté à un grand nombre, le résultat est uniquement le grand nombre. Le petit nombre était trop petit pour s'afficher avec une résolution de 15 ou 16 chiffres, et l'ordinateur le rejette effectivement. L'analyse de l'effet d'une précision limitée est un problème bien étudié. Les estimations de l'ampleur des erreurs d'arrondi et les méthodes pour limiter leur effet sur les calculs volumineux font partie de tout projet de calcul de grande envergure. La limite de précision est différente de la limite de portée, car elle affecte la mantisse, et non l'exposant.
La mantisse est une fraction binaire qui ne correspond pas nécessairement parfaitement à une fraction décimale. Dans de nombreux cas, une somme de puissances réciproques de 2 ne correspond pas à une fraction décimale spécifique, et les résultats des calculs seront légèrement décalés. Par exemple, la fraction décimale « 0,1 » est équivalente à une fraction binaire se répétant à l'infini : 0,000110011 ...
Les nombres dans les langages de programmation
La programmation en langage assembleur nécessite que le programmeur conserve une trace de la représentation des nombres. Lorsque le processeur ne prend pas en charge une opération mathématique requise, le programmeur doit élaborer un algorithme et une séquence d'instructions appropriés pour effectuer l'opération ; sur certains microprocesseurs, même la multiplication d'entiers doit être effectuée par logiciel.
Les langages de programmation de haut niveau tels que Ruby et Python proposent un nombre abstrait qui peut être un type étendu tel que rational , bignum ou complex . Les opérations mathématiques sont effectuées par des routines de bibliothèque fournies par l'implémentation du langage. Un symbole mathématique donné dans le code source, par surcharge d'opérateur , invoquera un code objet différent approprié à la représentation du type numérique ; les opérations mathématiques sur n'importe quel nombre, qu'il soit signé, non signé, rationnel, à virgule flottante, à virgule fixe, intégral ou complexe, sont écrites exactement de la même manière.
Certains langages, tels que REXX et Java , proposent des opérations à virgule flottante décimale, qui génèrent des erreurs d'arrondi sous une forme différente.
Plus d articles de Worldlex Wiki
Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.
Explorer l index
Format de numéro d'ordinateur
Source Worldlex Wiki
Langue Francais
Acces Gratuit