Opérations arithmétiques dans la calculatrice de différents systèmes de nombres. Addition binaire

Mission de service. Le calculateur en ligne est conçu pour additionner des nombres binaires en codes directs, inverses et complémentaires.

Les éléments suivants sont également utilisés avec cette calculatrice :
Conversion de nombres en systèmes de nombres binaires, hexadécimaux, décimaux et octaux
Multiplication de nombres binaires
Format virgule flottante
Exemple 1. Exprimez le nombre 133,54 sous la forme d'un nombre à virgule flottante.
Solution. Représentons le nombre 133,54 sous une forme exponentielle normalisée :
1,3354*10 2 = 1,3354*exp 10 2
Le nombre 1.3354*exp 10 2 est composé de deux parties : la mantisse M=1.3354 et l'exposant exp 10 =2
Si la mantisse est dans la plage 1 ≤ M Représenter un nombre sous forme exponentielle dénormalisée.
Si la mantisse est dans l'intervalle 0.1 ≤ M Représentons le nombre sous forme exponentielle dénormalisée : 0.13354*exp 10 3

Exemple #2. Représentez le nombre binaire 101.10 2 sous une forme normalisée, écrivez dans la norme IEEE754 32 bits.
table de vérité


Calcul de la limite

Arithmétique en système binaire

Les opérations arithmétiques dans le système binaire sont effectuées de la même manière qu'en décimal. Mais, si dans le système de numération décimale, le transfert et le prêt sont effectués par dix unités, alors en binaire - par deux unités. Le tableau montre les règles d'addition et de soustraction dans le système binaire.
  1. Lors de l'ajout de deux unités dans le système de numération binaire, ce bit sera 0 et il y aura un transfert de un vers le bit le plus élevé.
  2. En soustrayant un de zéro, un est emprunté à l'ordre le plus élevé, où il y a 1 . Une unité occupée dans cette place donne deux unités dans la place où l'action est calculée, ainsi qu'une, dans toutes les places intermédiaires.

L'ajout de numéros, en tenant compte de leurs signes sur la machine, est une séquence des actions suivantes :

  • convertir les nombres d'origine en code spécifié ;
  • ajout de codes au niveau du bit ;
  • analyse du résultat.
Lors de l'exécution d'une opération dans le code inverse (inverse modifié), si à la suite de l'addition une unité de report apparaît dans le bit de signe, elle est ajoutée au bit le moins significatif de la somme.
Lors de l'exécution d'une opération dans un code supplémentaire (supplémentaire modifié), si à la suite de l'ajout une unité de retenue se produit dans le bit de signe, elle est rejetée.
L'opération de soustraction dans un ordinateur s'effectue par addition selon la règle : X-Y=X+(-Y). Les autres actions sont effectuées de la même manière que pour l'opération d'addition.

Exemple 1.
Soit : x=0,110001 ; y= -0.001001, ajouter en code modifié inversé.

Donné : x=0,101001 ; y= -0.001101, ajoutez du code modifié supplémentaire.

Exemple #2. Résolvez des exemples de soustraction binaire en utilisant le complément à 1 et la méthode d'enveloppement.
a) 11 - 10.
Solution.
Représentons les nombres 11 2 et -10 2 dans le code inverse.

Le nombre binaire 0000011 a un code de retour de 0,0000011

Ajoutons les numéros 00000011 et 11111101

7 6 5 4 3 2 1 0
1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0

7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0

Un débordement s'est produit dans le 2e bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 3ème bit.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0

7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0

7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

En conséquence, nous obtenons :
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 0 0 0

Il y avait un report du bit de signe. Ajoutons-le (c'est-à-dire 1) au nombre résultant (effectuant ainsi la procédure de transfert cyclique).
En conséquence, nous obtenons :
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 1

Résultat de l'addition : 00000001. Convertir en représentation décimale. Pour traduire la partie entière, il faut multiplier le chiffre du nombre par le degré de chiffre correspondant.
00000001 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *0 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 0 + 0 + 1 = 1
Résultat de l'addition (en notation décimale) : 1

b) 111-010 Représentons les nombres 111 2 et -010 2 en code inversé.
Le code inverse pour un nombre positif est le même que le code direct. Pour un nombre négatif, tous les chiffres du nombre sont remplacés par des chiffres opposés (1 à 0, 0 à 1) et un est entré dans le bit de signe.
Le nombre binaire 0000111 a un code de retour de 0,0000111
Le nombre binaire 0000010 a un code retour de 1.1111101
Ajoutons les numéros 00000111 et 11111101
Un débordement s'est produit dans le 0ème bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 1er bit.

7 6 5 4 3 2 1 0
1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0

Un débordement s'est produit dans le 1er bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 2ème bit.
7 6 5 4 3 2 1 0
1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0

Un débordement s'est produit dans le 2ème bit (1 + 1 + 1 = 11). Par conséquent, nous écrivons 1 et transférons 1 au 3ème chiffre.
7 6 5 4 3 2 1 0
1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
1 0 0

Un débordement s'est produit dans le 3e bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 4ème bit.
7 6 5 4 3 2 1 0
1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 1 0 0

Un débordement s'est produit dans le 4ème bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 5ème bit.
7 6 5 4 3 2 1 0
1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 1 0 0

Un débordement s'est produit dans le 5ème bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 6ème bit.
7 6 5 4 3 2 1 0
1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 1 0 0

Un débordement s'est produit dans le 6ème bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 7ème bit.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 1 0 0

Un débordement s'est produit dans le 7ème bit (1 + 1 = 10). Par conséquent, nous écrivons 0 et transférons 1 au 8ème bit.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

En conséquence, nous obtenons :
7 6 5 4 3 2 1 0
1 1 1 1 1 1 1
0 0 0 0 0 1 1 1
1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 0

Il y avait un report du bit de signe. Ajoutons-le (c'est-à-dire 1) au nombre résultant (effectuant ainsi la procédure de transfert cyclique).
En conséquence, nous obtenons :
7 6 5 4 3 2 1 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
0 0 0 0 0 1 0 1

Résultat de l'addition : 00000101
Nous avons obtenu le nombre 00000101. Pour traduire la partie entière, il faut multiplier le chiffre du nombre par le degré du chiffre qui lui correspond.
00000101 = 2 7 *0 + 2 6 *0 + 2 5 *0 + 2 4 *0 + 2 3 *0 + 2 2 *1 + 2 1 *0 + 2 0 *1 = 0 + 0 + 0 + 0 + 0 + 4 + 0 + 1 = 5
Résultat de l'addition (en notation décimale) : 5

Addition de nombres réels binaires à virgule flottante

Dans un ordinateur, n'importe quel nombre peut être représenté au format à virgule flottante. Le format à virgule flottante est illustré dans la figure :


Par exemple, le nombre 10101 au format virgule flottante peut s'écrire comme ceci :


Les ordinateurs utilisent une forme de notation normalisée, dans laquelle la position de la virgule est toujours donnée avant le chiffre significatif de la mantisse, c'est-à-dire condition est remplie :
b-1 ≤|M| Nombre normalisé - il s'agit d'un nombre qui a un chiffre significatif après la virgule (c'est-à-dire 1 dans le système binaire). Exemple de normalisation :
0,00101*2 100 =0,101*2 10
111,1001*2 10 =0,111001*2 101
0,01101*2 -11 =0,1101*2 -100
11,1011*2 -101 =0,11011*2 -11

Lors de l'ajout de nombres à virgule flottante, l'alignement des ordres s'effectue vers un ordre supérieur :

Algorithme d'addition en virgule flottante :

  1. Alignement des commandes ;
  2. Ajout de mantisses dans le code modifié supplémentaire ;
  3. Normalisation du résultat.

Exemple #4.
A=0,1011*2 10 , B=0,0001*2 11
1. Alignement des commandes ;
A=0,01011*2 11 , B=0,0001*2 11
2. Ajout de mantisses dans le code modifié additionnel ;
MA add.mod. =00.01011
Mod supplémentaire MB. =00.0001
00,01011
+ 00,00010
=
00,01101
A+B=0,01101*2 11
3. Normalisation du résultat.
A+B=0,1101*2 10

Exemple #3. Écrivez un nombre décimal en notation décimale binaire et additionnez deux nombres en notation binaire.

Exemples de traduction de nombres dans différents systèmes de nombres

Exemple 1
Convertissons le nombre 12 du système décimal au système binaire
Solution

Convertissons le nombre 12 10 dans le système de numération 2-aire, en utilisant des divisions successives par 2, jusqu'à ce que le quotient incomplet soit égal à zéro. Le résultat sera un nombre du reste de la division écrit de droite à gauche.

12 : 2 = 6 reste : 0
6 : 2 = 3 reste : 0
3 : 2 = 1 reste : 1
1 : 2 = 0 reste : 1

12 10 = 1100 2

Exemple #2
Traduisons le nombre 12,3 du système décimal au système binaire

12.3 10 = 1100.010011001100110011001100110011 2

Solution

Traduisons la partie entière 12 du nombre 12,3 10 dans le système de numération 2-aire, en utilisant des divisions successives par 2, jusqu'à ce que le quotient incomplet soit égal à zéro. Le résultat sera un nombre du reste de la division écrit de droite à gauche.

12 : 2 = 6 reste : 0
6 : 2 = 3 reste : 0
3 : 2 = 1 reste : 1
1 : 2 = 0 reste : 1

12 10 = 1100 2

Traduisons la partie fractionnaire 0,3 du nombre 12,3 10 dans un système de numération à 2 chiffres, en utilisant la multiplication séquentielle par 2, jusqu'à ce que la partie fractionnaire du produit se révèle être zéro ou que le nombre requis de décimales soit atteint. Si, à la suite de la multiplication, la partie entière n'est pas égale à zéro, il est alors nécessaire de remplacer la valeur de la partie entière par zéro. Le résultat sera un nombre de parties entières de produits, écrit de gauche à droite.

0.3 · 2 = 0 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2
0.2 · 2 = 0 .4
0.4 · 2 = 0 .8
0.8 · 2 = 1 .6
0.6 · 2 = 1 .2

0.3 10 = 0.010011001100110011001100110011 2
12.3 10 = 1100.010011001100110011001100110011 2

Exemple #3
Convertissons le nombre 10011 du système binaire au système décimal
Solution

Traduisons le nombre 10011 2 dans le système de numération décimale, pour cela nous notons d'abord la position de chaque chiffre dans le nombre de droite à gauche, en partant de zéro

Chaque position du chiffre sera une puissance de 2, puisque le système de numération est 2-aire. Il faut successivement multiplier chaque nombre 10011 2 par 2 à la puissance de la position correspondante du nombre puis l'additionner avec le produit suivant du nombre suivant à la puissance de sa position correspondante.

10011 2 = 1 ⋅ 2 4 + 0 ⋅ 2 3 + 0 ⋅ 2 2 + 1 ⋅ 2 1 + 1 ⋅ 2 0 = 19 10

Exemple #4
Traduisons le nombre 11.101 du système binaire au système décimal

11.101 2 = 3.625 10

Solution

Traduisons le nombre 11.101 2 dans le système de nombre décimal, pour cela nous notons d'abord la position de chaque chiffre dans le nombre

Chaque position du chiffre sera une puissance de 2, puisque le système de numération est 2-aire. Il faut successivement multiplier chaque nombre 11.101 2 par 2 à la puissance de la position correspondante du nombre puis l'additionner avec le produit suivant du nombre suivant à la puissance de sa position correspondante.

11.101 2 = 1 ⋅ 2 1 + 1 ⋅ 2 0 + 1 ⋅ 2 -1 + 0 ⋅ 2 -2 + 1 ⋅ 2 -3 = 3.625 10

Exemple #5
Convertissons le nombre 1583 du système décimal au système de nombre hexadécimal

1583 10 = 62F 16

Solution

Traduisons le nombre 1583 10 dans le système de numération 16-aire, en utilisant des divisions successives par 16, jusqu'à ce que le quotient incomplet soit égal à zéro. Le résultat sera un nombre du reste de la division écrit de droite à gauche.

1583 : 16 = 98 reste : 15, 15 = F
98 : 16 = 6 reste : 2
6 : 16 = 0 reste : 6

1583 10 = 62F 16

Exemple #6
Traduisons le nombre 1583.56 du système décimal au système de nombre hexadécimal

1583,56 10 = 62F.8F5C28F5C28F5C28F5C28F5C28F5C2 16

Solution

Traduisons la partie entière 1583 du nombre 1583,56 10 dans le système à 16 nombres, en utilisant des divisions successives par 16, jusqu'à ce que le quotient incomplet soit égal à zéro. Le résultat sera un nombre du reste de la division écrit de droite à gauche.

1583 : 16 = 98 reste : 15, 15 = F
98 : 16 = 6 reste : 2
6 : 16 = 0 reste : 6

1583 10 = 62F 16

Traduisons la partie fractionnaire 0,56 du nombre 1583,56 10 dans le système à 16 chiffres, en utilisant la multiplication séquentielle par 16, jusqu'à ce que la partie fractionnaire du produit se révèle être zéro ou que le nombre requis de décimales soit atteint. Si, à la suite de la multiplication, la partie entière n'est pas égale à zéro, il est alors nécessaire de remplacer la valeur de la partie entière par zéro. Le résultat sera un nombre de parties entières de produits, écrit de gauche à droite.

0.56 · 16 = 8 .96
0.96 · 16 = 15.36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15.36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15.36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15.36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15.36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56
0.56 · 16 = 8 .96
0.96 · 16 = 15.36, 15=F
0.36 · 16 = 5 .76
0.76 · 16 = 12.16, 12=C
0.16 · 16 = 2 .56

0,56 10 = 0,8F5C28F5C28F5C28F5C28F5C28F5C2 16
1583,56 10 = 62F.8F5C28F5C28F5C28F5C28F5C28F5C2 16

Exemple #7
Convertissons le nombre A12DCF du système hexadécimal au système décimal

A12DCF 16 = 10563023 10

Solution

Convertissons le nombre A12DCF 16 au système de nombre décimal, pour cela nous notons d'abord la position de chaque chiffre dans le nombre de droite à gauche, en commençant par zéro

Chaque position du chiffre sera une puissance de 16, puisque le système de numération est 16. Il faut successivement multiplier chaque nombre A12DCF 16 par 16 à la puissance de la position correspondante du nombre puis additionner avec le produit suivant du nombre suivant à la puissance de sa position correspondante.
2

1 0 -1 -2 -3 NombreUN1 2 DCF1 2 UN
Chaque position du chiffre sera une puissance de 16, puisque le système de numération est 16. Il est nécessaire de multiplier séquentiellement chaque nombre A12DCF.12A 16 par 16 à la puissance de la position correspondante du nombre, puis d'ajouter avec le produit suivant du nombre suivant à la puissance de sa position correspondante.
A 16 = 10 10
D16 = 13 10
C 16 = 12 10
F 16 = 15 10

A12DCF.12A 16 = 10 ⋅ 16 5 + 1 ⋅ 16 4 + 2 ⋅ 16 3 + 13 ⋅ 16 2 + 12 ⋅ 16 1 + 15 ⋅ 16 0 + 1 ⋅ 16 -1

1 0 Nombre1 0 1 0 1 0 0 0 1 1
Chaque position du chiffre sera une puissance de 2, puisque le système de numération est 2-aire. Il faut successivement multiplier chaque nombre 1010100011 2 par 2 à la puissance de la position correspondante du nombre puis l'additionner avec le produit suivant du nombre suivant à la puissance de sa position correspondante.

1010100011 2 = 1 ⋅ 2 9 + 0 ⋅ 2 8 + 1 ⋅ 2 7 + 0 ⋅ 2 6 + 1 ⋅ 2 5 + 0 ⋅ 2 4 + 0 ⋅ 2 3 + 0 ⋅ 2 2 + 1 ⋅ 2 1 + 1 ⋅ 2 0 = 675 10

Traduisons le nombre 675 10 dans le système à 16 chiffres, en utilisant des divisions successives par 16, jusqu'à ce que le quotient partiel soit égal à zéro. Le résultat sera un nombre du reste de la division écrit de droite à gauche.

675 : 16 = 42 reste : 3
42 : 16 = 2 reste : 10, 10 = A
2 : 16 = 0 reste : 2

675 10 = 2A3 16 Mission de service. Le service est conçu pour traduire les numéros d'un système de numérotation à un autre en ligne. Pour ce faire, sélectionnez la base du système à partir de laquelle vous souhaitez traduire le numéro. Vous pouvez saisir à la fois des nombres entiers et des nombres avec une virgule.

Vous pouvez saisir des nombres entiers, tels que 34 , ou des nombres fractionnaires, tels que 637,333 . Pour les nombres fractionnaires, la précision de la traduction après la virgule est indiquée.

Les éléments suivants sont également utilisés avec cette calculatrice :

Façons de représenter les nombres

Binaire nombres (binaires) - chaque chiffre signifie la valeur d'un bit (0 ou 1), le bit le plus significatif est toujours écrit à gauche, la lettre «b» est placée après le nombre. Pour faciliter la perception, les cahiers peuvent être séparés par des espaces. Par exemple, 1010 0101b.
Hexadécimal nombres (hexadécimaux) - chaque tétrade est représentée par un caractère 0...9, A, B, ..., F. Une telle représentation peut être notée de différentes manières, ici seul le caractère "h" est utilisé après le dernier chiffre hexadécimal. Par exemple, A5h. Dans les textes de programme, le même numéro peut être désigné à la fois par 0xA5 et 0A5h, selon la syntaxe du langage de programmation. Un zéro non significatif (0) est ajouté à gauche du chiffre hexadécimal le plus significatif représenté par une lettre pour faire la distinction entre les nombres et les noms symboliques.
Décimales nombres (décimaux) - chaque octet (mot, mot double) est représenté par un nombre ordinaire et le signe de la représentation décimale (lettre "d") est généralement omis. L'octet des exemples précédents a une valeur décimale de 165. Contrairement à la notation binaire et hexadécimale, la décimale est difficile à déterminer mentalement la valeur de chaque bit, ce qui doit parfois être fait.
Octale nombres (octaux) - chaque triplet de bits (la séparation commence par le moins significatif) est écrit sous la forme d'un nombre 0-7, à la fin le signe "o" est mis. Le même nombre s'écrirait 245o. Le système octal est incommode en ce que l'octet ne peut pas être divisé de manière égale.

Algorithme pour convertir des nombres d'un système de numération à un autre

La conversion de nombres entiers décimaux vers tout autre système de numération s'effectue en divisant le nombre par la base du nouveau système de numération jusqu'à ce que le reste laisse un nombre inférieur à la base du nouveau système de numération. Le nouveau nombre est écrit comme le reste de la division, en commençant par le dernier.
La conversion de la fraction décimale correcte en un autre PSS est effectuée en multipliant uniquement la partie fractionnaire du nombre par la base du nouveau système de numération jusqu'à ce que tous les zéros restent dans la partie fractionnaire ou jusqu'à ce que la précision de traduction spécifiée soit atteinte. À la suite de chaque opération de multiplication, un chiffre du nouveau nombre est formé, en commençant par le plus élevé.
La traduction d'une fraction impropre s'effectue selon les 1ère et 2ème règles. Les parties entières et fractionnaires sont écrites ensemble, séparées par une virgule.

Exemple 1.



Traduction du système de numérotation de 2 à 8 à 16.
Ces systèmes sont des multiples de deux, par conséquent, la traduction est effectuée à l'aide de la table de correspondance (voir ci-dessous).

Pour convertir un nombre d'un système de numération binaire en un nombre octal (hexadécimal), il est nécessaire de diviser le nombre binaire en groupes de trois (quatre pour l'hexadécimal) chiffres d'une virgule à droite et à gauche, en complétant les groupes extrêmes par des zéros si nécessaire. Chaque groupe est remplacé par le chiffre octal ou hexadécimal correspondant.

Exemple #2. 1010111010.1011 = 1.010.111.010.101.1 = 1272.51 8
ici 001=1 ; 010=2 ; 111=7 ; 010=2 ; 101=5 ; 001=1

Lors de la conversion en hexadécimal, vous devez diviser le nombre en parties de quatre chiffres chacune, en suivant les mêmes règles.
Exemple #3. 1010111010.1011 = 10.1011.1010.1011 = 2B12.13 HEX
ici 0010=2 ; 1011=B ; 1010=12 ; 1011=13

La conversion des nombres de 2, 8 et 16 au système décimal s'effectue en divisant le nombre en nombres séparés et en le multipliant par la base du système (à partir de laquelle le nombre est traduit) élevée à la puissance correspondant à son nombre ordinal dans le numéro traduit. Dans ce cas, les nombres sont numérotés à gauche de la virgule décimale (le premier nombre a le chiffre 0) en augmentant, et à droite en diminuant (c'est-à-dire avec un signe négatif). Les résultats obtenus sont additionnés.

Exemple #4.
Exemple de conversion d'un système de numération binaire en décimal.

1010010.101 2 = 1 2 6 +0 2 5 +1 2 4 +0 2 3 +0 2 2 +1 2 1 +0 2 0 + 1 2 -1 +0 2 - 2 +1 2 -3 =
= 64+0+16+0+0+2+0+0.5+0+0.125 = 82.625 10 Exemple de conversion d'un système de numération octal à décimal. 108,5 8 = 1* 8 2 +0 8 1 +8 8 0 + 5 8 -1 = 64+0+8+0,625 = 72,625 10 Exemple de conversion d'un système de numération hexadécimal en décimal. 108,5 16 = 1 16 2 +0 16 1 +8 16 0 + 5 16 -1 = 256+0+8+0,3125 = 264,3125 10

Encore une fois, nous répétons l'algorithme de traduction des nombres d'un système de numérotation à un autre PSS

  1. Du système décimal :
    • diviser le nombre par la base du système de numération en cours de traduction ;
    • trouver le reste après avoir divisé la partie entière du nombre ;
    • écrivez tous les restes de la division dans l'ordre inverse ;
  2. Du système binaire
    • Pour passer au système décimal, vous devez trouver la somme des produits de base 2 par le degré de décharge correspondant;
    • Pour convertir un nombre en octal, vous devez diviser le nombre en triades.
      Par exemple, 1000110 = 1000 110 = 106 8
    • Pour convertir un nombre binaire en hexadécimal, vous devez diviser le nombre en groupes de 4 chiffres.
      Par exemple, 1000110 = 100 0110 = 46 16
Le système est dit positionnel., pour lequel la signification ou le poids d'un chiffre dépend de sa position dans le nombre. La relation entre les systèmes est exprimée dans un tableau.
Tableau de correspondance des systèmes de numération :
SS binaireSS hexadécimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 UN
1011 B
1100 C
1101 D
1110 E
1111 F

Tableau de conversion au système de numération octal

Exemple #2. Convertissez le nombre 100,12 de décimal en octal et vice versa. Expliquez les raisons des écarts.
Solution.
Étape 1. .

Le reste de la division est écrit dans l'ordre inverse. Nous obtenons le nombre dans le 8ème système de nombres : 144
100 = 144 8

Pour traduire la partie fractionnaire d'un nombre, on multiplie successivement la partie fractionnaire par la base 8. Du coup, on note à chaque fois la partie entière du produit.
0,12*8 = 0,96 (partie entière 0 )
0,96*8 = 7,68 (partie entière 7 )
0,68*8 = 5,44 (partie entière 5 )
0,44*8 = 3,52 (partie entière 3 )
Nous obtenons le numéro dans le 8e système de numérotation : 0753.
0.12 = 0.753 8

100,12 10 = 144,0753 8

Étape 2. Conversion d'un nombre décimal en octal.
Conversion inverse d'octal en décimal.

Pour traduire la partie entière, il faut multiplier le chiffre du nombre par le degré de chiffre correspondant.
144 = 8 2 *1 + 8 1 *4 + 8 0 *4 = 64 + 32 + 4 = 100

Pour traduire la partie fractionnaire, il faut diviser le chiffre du nombre par le degré de chiffre correspondant
0753 = 8 -1 *0 + 8 -2 *7 + 8 -3 *5 + 8 -4 *3 = 0.119873046875 = 0.1199

144,0753 8 = 100,96 10
La différence de 0,0001 (100,12 - 100,1199) est due à une erreur d'arrondi lors de la conversion en octal. Cette erreur peut être réduite si nous prenons un plus grand nombre de chiffres (par exemple, pas 4, mais 8).

Note:
Vous ne pouvez effectuer des actions que dans un seul système de numérotation, si vous disposez de différents systèmes de numérotation, traduisez d'abord tous les numéros en un seul système de numérotation
Si vous travaillez avec un système numérique dont la base est supérieure à 10 et que vous avez rencontré une lettre dans l'exemple, remplacez-la mentalement par un nombre dans le système décimal, effectuez les opérations nécessaires et traduisez le résultat dans le système numérique d'origine.

Ajout:
Tout le monde se souvient qu'à l'école primaire, on nous apprenait à empiler en colonne, décharge avec décharge. Si l'addition dans la décharge a donné un nombre supérieur à 9, nous en avons soustrait 10, le résultat a été enregistré dans la réponse et 1 a été ajouté à la décharge suivante. A partir de là, nous pouvons formuler une règle :

  1. Il est plus pratique de plier "colonne"
  2. En additionnant petit à petit, si le chiffre du chiffre > est supérieur au plus grand chiffre de l'alphabet du système de numération donné, on soustrait la base du système de numération de ce nombre.
  3. Le résultat est écrit dans la catégorie souhaitée
  4. Ajouter un au chiffre suivant
Exemple:

Ajouter 1001001110 et 100111101 en binaire

1001001110

100111101

1110001011

Réponse : 1110001011

Ajouter F3B et 5A en hexadécimal

FE0

Réponse : FE0


Soustraction: Tout le monde se souvient qu'à l'école primaire, on nous apprenait à soustraire une colonne, une décharge d'une décharge. Si, lors de la soustraction dans le chiffre, un nombre inférieur à 0 a été obtenu, alors nous avons «emprunté» une unité au chiffre le plus élevé et ajouté 10 au nombre souhaité, soustrait le nombre souhaité du nouveau nombre. A partir de là, nous pouvons formuler une règle :

  1. Soustraire plus commodément "colonne"
  2. Soustraire au niveau du bit si le chiffre est dans le chiffre< 0, вычитаем из старшего разряда 1, а к нужному разряду прибавляем основание системы счисления.
  3. Soustraire
Exemple:

Soustraire 100111101 de 1001001110 en binaire

1001001110

100111101

100010001

Réponse : 100010001

Soustraire 5A hexadécimal de F3B

D96

Réponse : D96

Surtout, n'oubliez pas que vous ne disposez que des nombres de ce système de numération, mais n'oubliez pas les transitions entre les termes de bits.
Multiplication:

La multiplication dans d'autres systèmes de numération se produit exactement de la même manière que nous avions l'habitude de multiplier.

  1. Il est plus pratique de multiplier par une "colonne"
  2. La multiplication dans n'importe quel système numérique suit les mêmes règles qu'en décimal. Mais nous ne pouvons utiliser que l'alphabet, système donné compte
Exemple:

Multiplier 10111 par 1101 en binaire

10111

1101

10111

10111

10111

100101011

Réponse : 100101011

Multiplier F3B par A en hexadécimal

F3B

984E

Réponse : 984E

Réponse : 984E

Surtout, n'oubliez pas que vous ne disposez que des nombres de ce système de numération, mais n'oubliez pas les transitions entre les termes de bits.

Division:

La division dans d'autres systèmes de nombres se produit exactement de la même manière que nous sommes habitués à diviser.

  1. Il est plus pratique de partager dans une "colonne"
  2. La division dans n'importe quel système de numération se produit selon les mêmes règles qu'en décimal. Mais nous ne pouvons utiliser que l'alphabet donné par le système numérique

Exemple:

Diviser 1011011 par 1101 en binaire

Diviser F3 B au numéro 8 dans le système numérique hexadécimal

Surtout, n'oubliez pas que vous ne disposez que des nombres de ce système de numération, mais n'oubliez pas les transitions entre les termes de bits.

NON POSITIONNEL

Systèmes de nombres non positionnels

Les systèmes de nombres non positionnels sont apparus historiquement en premier. Dans ces systèmes, la valeur de chaque symbole numérique est constante et ne dépend pas de sa position. Le cas le plus simple d'un système non positionnel est un système unique, pour lequel un seul symbole est utilisé pour désigner les nombres, en règle générale c'est une ligne, parfois un point, dont le nombre correspondant au nombre désigné est toujours mis:

  • 1 - |
  • 2 - ||
  • 3 - |||, etc.

Donc ce seul personnage compte unités, à partir duquel le nombre requis est obtenu par addition successive :

||||| = 1+1+1+1+1 = 5.

Une modification du système d'unités est un système avec une base, dans lequel il existe des symboles non seulement pour désigner l'unité, mais aussi pour les degrés de la base. Par exemple, si le nombre 5 est pris comme base, il y aura des caractères supplémentaires pour indiquer 5, 25, 125, etc.

Un exemple d'un tel système à base 10 est l'ancien système égyptien, apparu dans la seconde moitié du troisième millénaire avant notre ère. Ce système avait les hiéroglyphes suivants :

  • six - unités,
  • arc - dizaines,
  • feuille de palmier - des centaines,
  • fleur de lotus - des milliers.

Les nombres étaient obtenus par simple addition, l'ordre pouvait être quelconque. Ainsi, pour désigner, par exemple, le nombre 3815, ils ont dessiné trois fleurs de lotus, huit feuilles de palmier, un arc et cinq pôles. Des systèmes plus complexes avec des signes supplémentaires - l'ancien grec, romain. Le romain utilise également un élément du système de position - un grand nombre devant un plus petit est ajouté, un plus petit devant un plus grand est soustrait: IV \u003d 4, mais VI \u003d 6, cette méthode, cependant, est utilisé exclusivement pour indiquer les nombres 4, 9, 40, 90, 400 , 900, 4000, et leurs dérivés par addition.

Les systèmes grecs et russes modernes utilisaient 27 lettres de l'alphabet comme nombres, où ils désignaient chaque nombre de 1 à 9, ainsi que des dizaines et des centaines. Cette approche a permis d'écrire des nombres de 1 à 999 sans répéter les chiffres.

Dans l'ancien système russe, des cadres spéciaux autour des nombres étaient utilisés pour désigner les grands nombres.

Le système de numérotation non positionnel est encore utilisé presque partout comme système de numérotation verbale. Les systèmes de numérotation verbale sont fortement liés à la langue et leurs éléments communs se réfèrent principalement aux principes généraux et aux noms des grands nombres (billions et plus). Les principes généraux qui sous-tendent la numérotation verbale moderne présupposent la formation d'une désignation en ajoutant et en multipliant les significations des noms uniques.

Avec cette calculatrice en ligne, vous pouvez convertir des nombres entiers et fractionnaires d'un système de numération à un autre. Une solution détaillée avec des explications est donnée. Pour traduire, entrez le numéro d'origine, définissez la base du système de numérotation du numéro d'origine, définissez la base du système de numérotation dans lequel vous souhaitez convertir le numéro et cliquez sur le bouton "Traduire". Voir la partie théorique et les exemples numériques ci-dessous.

Le résultat a déjà été reçu !

Traduction de nombres entiers et fractionnaires d'un système numérique à un autre - théorie, exemples et solutions

Il existe des systèmes de numération positionnels et non positionnels. Le système numérique arabe que nous utilisons dans la vie de tous les jours est positionnel, tandis que le système romain ne l'est pas. Dans les systèmes de nombres positionnels, la position d'un nombre détermine de manière unique la magnitude du nombre. Considérez cela en utilisant l'exemple du nombre 6372 dans le système de nombre décimal. Numérotons ce nombre de droite à gauche en partant de zéro :

Alors le nombre 6372 peut être représenté comme suit :

6372=6000+300+70+2 =6 10 3 +3 10 2 +7 10 1 +2 10 0 .

Le nombre 10 définit le système de numération (dans ce cas c'est 10). Les valeurs de la position du nombre donné sont prises en degrés.

Considérez le nombre décimal réel 1287,923. Nous le numérotons à partir de la position zéro du nombre à partir de la virgule décimale vers la gauche et vers la droite :

Alors le nombre 1287.923 peut être représenté comme :

1287.923 =1000+200+80 +7+0.9+0.02+0.003 = 1 10 3 +2 10 2 +8 10 1 +7 10 0 +9 10 -1 +2 10 -2 +3 10 -3 .

En général, la formule peut être représentée comme suit :

C n s n + C n-1 s n-1 +...+C 1 s 1 + C 0 s 0 + D -1 s -1 + D -2 s -2 + ... + D -k s -k

où C n est un entier en position n, D -k - nombre fractionnaire en position (-k), s- système de numération.

Quelques mots sur les systèmes de nombres. Un nombre dans le système de nombre décimal est composé d'un ensemble de chiffres (0,1,2,3,4,5,6,7,8,9), dans le système de nombre octal, il se compose de un ensemble de chiffres (0,1, 2,3,4,5,6,7), dans le système binaire - à partir de l'ensemble de chiffres (0,1), dans le système de numération hexadécimale - à partir de l'ensemble de chiffres (0, 1,2,3,4,5,6, 7,8,9,A,B,C,D,E,F), où A,B,C,D,E,F correspondent aux nombres 10,11, 12, 13, 14, 15. Dans le tableau 1, les nombres sont représentés dans différents systèmes de numération.

Tableau 1
Notation
10 2 8 16
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 UN
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F

Conversion de nombres d'un système de numération à un autre

Pour traduire des nombres d'un système numérique à un autre, le moyen le plus simple consiste à convertir d'abord le nombre en système numérique décimal, puis, à partir du système numérique décimal, à le traduire dans le système numérique requis.

Conversion de nombres de n'importe quel système de nombre en système de nombre décimal

À l'aide de la formule (1), vous pouvez convertir des nombres de n'importe quel système de numération vers le système de numération décimale.

Exemple 1. Convertissez le nombre 1011101.001 du système de numération binaire (SS) en SS décimal. Solution:

1 2 6 +0 2 5 + 1 2 4 + 1 2 3 + 1 2 2 + 0 2 1 + 1 2 0 + 0 2 -1 + 0 2 -2 + 1 2 -3 =64+16+8+4+1+1/8=93.125

Exemple2. Convertissez le nombre 1011101.001 du système de numération octal (SS) en SS décimal. Solution:

Exemple 3 . Convertissez le nombre AB572.CDF d'hexadécimal en décimal SS. Solution:

Ici UN- remplacé par 10, B- à 11 heures, C- à 12, F- à 15.

Conversion de nombres d'un système de numération décimal vers un autre système de numération

Pour convertir des nombres d'un système de numération décimal vers un autre système de numération, vous devez traduire séparément la partie entière du nombre et la partie fractionnaire du nombre.

La partie entière du nombre est traduite du SS décimal vers un autre système de numération - en divisant successivement la partie entière du nombre par la base du système de numération (pour SS binaire - par 2, pour SS à 8 chiffres - par 8, pour 16 chiffres - par 16, etc. ) pour obtenir un reste entier, inférieur à la base du SS.

Exemple 4 . Traduisons le nombre 159 de SS décimal en SS binaire :

159 2
158 79 2
1 78 39 2
1 38 19 2
1 18 9 2
1 8 4 2
1 4 2 2
0 2 1
0

Comme on peut le voir sur la Fig. 1, le nombre 159, lorsqu'il est divisé par 2, donne le quotient 79 et le reste est 1. De plus, le nombre 79, lorsqu'il est divisé par 2, donne le quotient 39 et le reste est 1, et ainsi de suite. Du coup, en construisant un nombre à partir du reste de la division (de droite à gauche), on obtient un nombre en binaire SS : 10011111 . Par conséquent, nous pouvons écrire :

159 10 =10011111 2 .

Exemple 5 . Convertissons le nombre 615 de SS décimal en SS octal.

615 8
608 76 8
7 72 9 8
4 8 1
1

Lors de la conversion d'un nombre de SS décimal en SS octal, vous devez diviser séquentiellement le nombre par 8 jusqu'à ce que vous obteniez un reste entier inférieur à 8. Par conséquent, en construisant un nombre à partir du reste de la division (de droite à gauche), nous obtenir un nombre en SS octal : 1147 (voir figure 2). Par conséquent, nous pouvons écrire :

615 10 =1147 8 .

Exemple 6 . Traduisons le nombre 19673 du système de numération décimal en SS hexadécimal.

19673 16
19664 1229 16
9 1216 76 16
13 64 4
12

Comme on peut le voir sur la figure 3, en divisant successivement le nombre 19673 par 16, on obtient les restes 4, 12, 13, 9. Dans le système de numération hexadécimal, le nombre 12 correspond à C, le nombre 13 - D. Par conséquent, notre nombre hexadécimal est 4CD9.

Pour convertir des fractions décimales correctes (un nombre réel avec une partie entière nulle) en un système numérique de base s, ce nombre doit être successivement multiplié par s jusqu'à ce que la partie fractionnaire soit un zéro pur, ou nous obtenons le nombre de chiffres requis. Si la multiplication donne un nombre avec une partie entière différente de zéro, alors cette partie entière n'est pas prise en compte (elles sont incluses séquentiellement dans le résultat).

Regardons ce qui précède avec des exemples.

Exemple 7 . Traduisons le nombre 0,214 du système décimal en SS binaire.

0.214
X 2
0 0.428
X 2
0 0.856
X 2
1 0.712
X 2
1 0.424
X 2
0 0.848
X 2
1 0.696
X 2
1 0.392

Comme on peut le voir sur la Fig.4, le nombre 0,214 est successivement multiplié par 2. Si le résultat de la multiplication est un nombre avec une partie entière autre que zéro, alors la partie entière est écrite séparément (à gauche du nombre), et le nombre est écrit avec une partie entière nulle. Si, une fois multiplié, un nombre avec une partie entière nulle est obtenu, alors zéro est écrit à sa gauche. Le processus de multiplication se poursuit jusqu'à ce qu'un zéro pur soit obtenu dans la partie fractionnaire ou que le nombre requis de chiffres soit obtenu. En écrivant les chiffres en gras (Fig. 4) de haut en bas, nous obtenons le nombre requis dans le système binaire : 0. 0011011 .

Par conséquent, nous pouvons écrire :

0.214 10 =0.0011011 2 .

Exemple 8 . Traduisons le nombre 0,125 du système de numération décimale en SS binaire.

0.125
X 2
0 0.25
X 2
0 0.5
X 2
1 0.0

Pour convertir le nombre 0,125 de SS décimal en binaire, ce nombre est successivement multiplié par 2. Dans la troisième étape, on obtient 0. Par conséquent, on obtient le résultat suivant :

0.125 10 =0.001 2 .

Exemple 9 . Traduisons le nombre 0,214 du système de numération décimal en SS hexadécimal.

0.214
X 16
3 0.424
X 16
6 0.784
X 16
12 0.544
X 16
8 0.704
X 16
11 0.264
X 16
4 0.224

En suivant les exemples 4 et 5, on obtient les nombres 3, 6, 12, 8, 11, 4. Mais en SS hexadécimal, les nombres C et B correspondent aux nombres 12 et 11. On a donc :

0,214 10 = 0,36C8B4 16 .

Exemple 10 . Traduisons le nombre 0,512 du système de nombre décimal en SS octal.

0.512
X 8
4 0.096
X 8
0 0.768
X 8
6 0.144
X 8
1 0.152
X 8
1 0.216
X 8
1 0.728

A obtenu:

0.512 10 =0.406111 8 .

Exemple 11 . Traduisons le nombre 159.125 du système décimal en SS binaire. Pour ce faire, nous traduisons séparément la partie entière du nombre (exemple 4) et la partie fractionnaire du nombre (exemple 8). En combinant ces résultats, nous obtenons :

159.125 10 =10011111.001 2 .

Exemple 12 . Traduisons le nombre 19673.214 du système de numération décimal en SS hexadécimal. Pour ce faire, nous traduisons séparément la partie entière du nombre (exemple 6) et la partie fractionnaire du nombre (exemple 9). En combinant davantage ces résultats, nous obtenons.

mob_info