[Python] Chapitre 02-06 <Supplement> Bases des programmes Python (gestion des valeurs numériques)

[Python] Chapitre 02-06 Gestion des valeurs numériques

Ici, je voudrais approfondir un peu le traitement des valeurs numériques. Notez que cette section est rarement traitée dans la pratique et qu'elle est </ font>, vous pouvez donc sauter cette section.

Il semble que l'accent sera mis sur une petite histoire théorique.

Cependant, si vous envisagez de passer l'examen de passeport informatique ou l'examen d'ingénieur de l'information de base, le contenu est couvert par la théorie de base, veuillez donc le lire **.

À propos des valeurs numériques

Comme expliqué au "Chapitre 02-01", les valeurs numériques peuvent être divisées comme suit.

--Integer
Exemple) 10, -7, 321 etc. --Numéro de point flottant (nombre réel)
Exemple) 3.14, -2.718, 6.02 × 10 23 </ sup>, etc.

En cela, je voudrais creuser un peu plus profondément dans "entier".

Base (N-aire)

Les nombres que nous traitons habituellement sont des ** nombres décimaux **. Les valeurs numériques sont en fait exprimées en utilisant 10 types de nombres, "0", "1", "2", "3", "4", "5", "6", "7", "8" et "9".

Cependant, l'ordinateur ne gère que deux, "0" ou "1". C'est ** binaire ( Nombre binaire) **.

Par exemple, le nombre décimal 45 s'écrit 101101 dans le nombre binaire.

En plus des nombres binaires et décimaux, il existe également des nombres octaux (nombre octal) et des nombres hexadécimaux (hexadécimaux) comme nombres N-aires couramment utilisés.

Conversion de radix

Tout d'abord, je voudrais parler de la conversion entre les nombres binaires et décimaux. (Si vous comprenez, vous pouvez l'ignorer)

Conversion de binaire en décimal

Pensez à convertir le nombre binaire 101101. J'ai résumé ces nombres binaires dans le tableau ci-dessous.

nombre 5 4 3 2 1 0
Nombre binaire 1 0 1 1 0 1

En regardant le tableau ci-dessus, chaque numéro se voit attribuer un numéro. De plus, j'ai osé attribuer 0, 1, 2, 3, 4, 5 à partir de la droite. Gardez ce nombre à l'esprit car il sera important plus tard.

Maintenant, dans le tableau ci-dessus, nous allons ajouter des ** poids ** à chaque chiffre. Le poids est N multiplié par le nombre de chaque chiffre, tel que N m </ sup> pour les nombres N-aires. Veuillez consulter le tableau ci-dessous pour un résumé de ce que cela signifie.

nombre 5 4 3 2 1 0
Nombre binaire 1 0 1 1 0 1
poids 25 24 23 22 21 20

Ensuite, multipliez ces poids par chaque chiffre du nombre binaire et ajoutez-les comme suit.

\begin{align}
&(2^{5}×1)+(2^{4}×0)+(2^{3}×1)+(2^{2}×1)+(2^{1}×0)+(2^{0}×1)\\
&=32  + 0 +  8 +  4 +  0 +  1\\
&=45
\end{align}

Comme mentionné ci-dessus, j'ai pu trouver le nombre décimal.

Conversion de décimal en binaire

Regardons maintenant la conversion du décimal au binaire. Changeons le nombre décimal 45 en nombre binaire.

En général, divisez une valeur décimale par N en N-aire et trouvez le reste de chacune. Cette fois, il est converti en nombre binaire, divisez-le par 2 comme indiqué ci-dessous. Diviser 45 par 2 donne un quotient de 22, et il y a un surplus de 1, alors écrivez-le à droite.

45÷2=22 ・ ・ ・ 1

De plus, si vous divisez 22 par 2, le quotient sera 11 et divisible. Dans ce cas, considérez ** 0 surplus ** comme indiqué ci-dessous.

22÷2=11 ・ ・ ・ 0

Si vous répétez ceci, ce sera comme suit. Souvent, pour trouver un nombre binaire, l'inverse de la division est souvent calculé.

1.png

À la fin, il y a trop de "0" et "1" écrits sur la droite, mais je vais les organiser dans l'ordre du bas.

2.png

Ensuite, il est devenu "101101", et j'ai pu trouver le nombre binaire du nombre décimal 45.

Gestion des nombres hexadécimaux et octaux

Comme mentionné ci-dessus, en nombres décimaux, les nombres sont exprimés en utilisant 10 types de nombres: "0", "1", "2", "3", "4", "5", "6", "7", "8" et "9". ..

Huit nombres sont prévisibles pour être exprimés en utilisant huit types de nombres, «0», «1», «2», «3», «4», «5», «6» et «7». Que va-t-il se passer?

Après "9", "10", "11", "12", "13", "14" et "15" suivent, mais alors "15" est vraiment "15", "1" et "5" Je ne sais pas s'ils sont collés ensemble.

Par conséquent, ** les nombres hexadécimaux sont exprimés en utilisant a à f comme indiqué dans le tableau ci-dessous **.

Nombre binaire 8 base Nombre décimal Hexadécimal
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 a
1011 13 11 b
1100 14 12 c
1101 15 13 d
1110 16 14 e
1111 17 15 f

Les nombres binaires sont inévitablement longs lorsqu'ils sont écrits, donc les exprimer en hexadécimal a l'avantage de pouvoir compresser la longueur et de la rendre plus facile à voir.

Conversion d'hexadécimal en décimal

Par exemple, envisagez de représenter le nombre hexadécimal "5c2" en décimal. Ceci est également envisagé en utilisant un tableau. Puisque c est 12 dans le tableau ci-dessus, calculez avec 12 comme indiqué ci-dessous.

nombre 2 1 0
Hexadécimal 5 c
(12)
2
poids 162 161 160

Ajoutez ceci en le pondérant de la même manière que dans le cas des nombres binaires.

\begin{align}
&(16^{2}×5)+(16^{1}×12)+(16^{0}×2)\\
&=1280  + 192 +  2 \\
&=1474
\end{align}

Au contraire, pour la conversion de décimal en hexadécimal, le reste divisé par 16 est organisé comme indiqué ci-dessous.

3.png

Ensuite, il est devenu "5c2", et j'ai pu trouver le nombre hexadécimal du nombre décimal 1474.

Dans le cas des nombres octaux, divisez par 8 et arrangez les restes de la même manière.

Autres nombres N-aires

Jusqu'à présent, nous l'avons traité comme binaire, octal, décimal et hexadécimal, mais ne traitons-nous pas d'autres nombres ternaires et quintiques?

En fait, les nombres ternaires et quintuplés existent, mais ils sont rarement utilisés. La méthode pour le trouver est la même que la division du nombre décimal par 3.

En fait, les nombres binaires sont compatibles avec les nombres octaux et hexadécimaux, et peuvent être obtenus immédiatement comme indiqué dans le tableau ci-dessus. Comme mentionné ci-dessus, étant donné que la notation devient longue lorsqu'il s'agit d'un nombre binaire, elle est souvent utilisée pour la convertir en utilisant un nombre hexadécimal et la compresser pour une visualisation facile.

Par exemple, si vous souhaitez convertir le nombre binaire "00101101" en un nombre hexadécimal tel quel, vous pouvez convertir le nombre binaire en le divisant en quatre et trouver le nombre hexadécimal dans le tableau ci-dessus.

0010 1101 = 2d

Conversion de base en Python

Maintenant, je voudrais convertir cela en utilisant Python. Cette fois, je vais vous expliquer l'utilisation de ** Python Console **.

J'expliquerai en utilisant les valeurs numériques dans l'exemple précédent. Tout d'abord, considérez la conversion de binaire, octal et hexadécimal en décimal. Entrez le code comme indiqué ci-dessous. À partir du haut, il est converti en décimal dans l'ordre binaire, octogonal et hexadécimal.

>>>bin(45)
'0b101101'
>>>oct(45)
'0o55'
>>>hex(1474)
'0x5c2'

Vous pouvez convertir en binaire avec ** fonction bin **, en octal avec ** fonction oct **, et en hexadécimal avec ** fonction hex **. En ce qui concerne le résultat de sortie, 0b (zéro abeille) représente binaire (nombre binaire), 0o (zéro o) représente octal et 0x (zéro X) représente hexadécimal (nombre hexagonal).

Maintenant, au contraire, voyons comment les nombres binaires, octaux et hexadécimaux peuvent être convertis en nombres décimaux. Entrez le code comme indiqué ci-dessous.

>>>0b101101
45
>>>0o55
45
>>>0x5c2
1474

Ajoutez simplement "0b", "0o" et "0x" avant les nombres que vous souhaitez convertir.

À propos des nombres à virgule flottante

Enfin, je parlerai des nombres à virgule flottante en complément. Par exemple, les nombres réels suivants

2.718

Sera écrit comme d'habitude.

De plus, les grands nombres et inversement les petits nombres peuvent être exprimés à l'aide d'exposants. Par exemple:

3.14 × 10^{3}\\
\\
5.1×10^{-2}

(*) </ font> Les 10 -2 </ sup> ci-dessus sont les suivants.

10^{-2}=\frac{1}{10^{2}}

Si cela est implémenté en Python, ce sera comme suit.

>>>3.14e3
3140.0
>>>5.1e-2
0.051

Où e3 signifie 10 3 </ sup> et e-2 signifie 10 -2 </ sup>.

La notation des nombres à virgule flottante à l'aide d'exposants comme décrit ci-dessus est souvent ** utilisée dans les calculs scientifiques et technologiques **.

Problème de pratique

[1-1] Convertissez les nombres binaires suivants en nombres décimaux. (Veuillez le faire manuellement) ・ 10001010 ・ 11111111 1010010111010 Vérifiez les résultats de [1-2] et [1-1] sur la console Python. [2-1] Convertissez les nombres hexadécimaux suivants en nombres décimaux. (Veuillez le faire manuellement) ・ C3 ・ Ff ・ 475 Vérifiez les résultats de [2-2] et [2-1] sur la console Python. [3-1] Convertissez les nombres décimaux suivants en nombres binaires, octaux et hexadécimaux. (Veuillez le faire à la main ・ 31 ・ 123 Vérifiez les résultats de [3-2] et [3-1] sur la console Python.

Retournez à [Lien de la table des matières]

Recommended Posts