Vous êtes sur la page 1sur 13

{

"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"![alt
text](https://upload.wikimedia.org/wikipedia/commons/thumb/b/b5/Logo_csud.png/
150px-Logo_csud.png \"Collège du sud\")\n",
"\n",
"# Représentation des nombres"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Introduction\n",
"\n",
"* Depuis des millénaires, les nombres sont pour les hommes un outil d’analyse
important pour décrire le monde. La représentation écrite des nombres a été le
point de départ du développement de l’écriture. Au cours de l’histoire de
l’humanité, divers systèmes de numération ont été simultanément développés.\n",
"\n",
"* Suite à la lecture de ce chapitre, vous serez en mesure de comprendre
pourquoi nous utilisons couramment un système de numération décimale et pourquoi
les ordinateurs travaillent de préférence avec un système de numération binaire. \
n",
"\n",
"* Dès lors que vous comprendrez comment développer un système de numération,
il vous sera facile de convertir un nombre d’un système vers un autre système de
numération. Vous serez même capable de développer vos propres systèmes de
numération et de représenter un nombre de plusieurs façons.\n",
"\n",
"<img width=\"500\" src=\"https://i.ibb.co/wWXtbJb/binaire.webp\"
alt=\"Représentation des nombres\">"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Les nombres en base 10"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Le système décimal de position\n",
"* Depuis tout petit, nous avons appris à compter en **base 10**. Dans cette
base de numération, dix symboles sont utilisés pour représenter les nombres: 0, 1,
2, 3, 4, 5, 6, 7, 8, 9.\n",
"\n",
"* Lorsque nous avons compté jusqu'à 9, nous avons appris qu'il fallait passer
à 10, 11, 12. En effet, lorsque l'on veut compter au delà de 9, il faut changer de
**rang**. Cela signifie que si le rang des unités est plein, il faut passer à celui
des dizaines, puis des centaines, milliers etc. \n",
"\n",
"* Le fait de représenter un nombre à l'aide de 10 symboles en lui donnant à la
fois une valeur absolue et en fournissant une valeur de position à chaque symbole
est appelé le **système décimal de position**. Il s'agit du système que vous
utilisez tous les jours sans le savoir. \n",
"\n",
"* Dans le système décimal, les nombres sont représentés à l'aide d'additions
de puissances de 10.\n",
"\n",
"### Décomposition d'un nombre en somme de puissance de 10\n",
"* On s'aperçoit que chaque nombre peut être représenter par une **somme de
puissance de 10**. Même le nombre 5 peut être représenté comme 5 fois 10 à la
puissance 0 (rappel: tout nombre à la puissance 0 vaut 1).\n",
"\n",
" * Le nombre $5_{10} = 10^0*$**5**\n",
" * Le nombre $15_{10} = (10^1*$**1**$) + (10^0*$**5**)\n",
" * Le nombre $115_{10} = (10^2*$**1**$) + (10^1*$**1**$) + (10^0*$**5**)\
n",
"\n",
"\n",
"\n",
"### Tableau des puissances de 10\n",
"![alt text](https://i.ibb.co/nzHkmrF/base-10.gif \"Base 10\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercices\n",
"* Décomposez les nombres suivants en base 10:\n",
" * $8_{10}$\n",
" * $55_{10}$\n",
" * $125_{10}$\n",
" * $1357_{10}$\n",
" * $10634_{10}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Système binaire\n",
"### Introduction\n",
"* Le codage binaire est le codage parlé et compris par les ordinateurs, les
calculatrices et plus généralement par toutes les machines électroniques.\n",
"\n",
"* Alors que les humains utilisent de multiples symboles pour former des mots
puis des phrases et ainsi transmettre entre eux de l’information, les machines
n’utilisent que deux symboles : le 0 et le 1. On appelle ces deux unités (le 1 et
le 0) des **bits**. \n",
"\n",
"* L'avantage d'utiliser uniquement ces deux symboles provient du fait que d'un
point de vue physique, il suffit de représenter l'information en utilisant
uniquement deux états: on représente le 1 à l'aide d'un courant électrique et le 0
avec l'absence de courant électrique. Grâce à ces deux états, l'ordinateur est
capable de représenter n'importe quelle information (images, vidéos, musique,
etc).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Les puissances de 2\n",
"* Nous l'avons vu auparavant, en base 10, les nombres se calculent sous la
forme d'une somme de puissance de 10. Dans le système binaire, les nombres
s'écrivent non pas sous la forme d'additions de puissances de 10 mais de puissances
de 2. Les puissances de 2 sont les suivantes:\n",
"\n",
"![alt text](https://i.ibb.co/Rj1yH3T/puissance-de-deux.png \"Puissances de
2\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Conversion d'un nombre binaire en nombre décimal\n",
"* Pour convertir un nombre binaire en décimal, on multiplie la valeur de
chaque rang du nombre par \"deux à la puissance du rang\". Bien que cette phrase
soit compliquée, la réalité est plus simple. Prenons un exemple et cherchons à
savoir combien vaut 11010011 en base 10.\n",
"\n",
"#### Exemple de conversion d'un nombre binaire en nombre décimal:\n",
"* $11010011_{2}$ = (**1** $*2^7$) + (**1** $*2^6$) + (**0** $*2^5$) + (**1**
$*2^4$) + (**0** $*2^3$) + (**0** $*2^2$) + (**1**$*2^1$) + (**1** $*2^0$) =
$211_{10}$\n",
"\n",
"* Chaque 0 ou 1 de ce nombre est appelé un **bit**. Une séquence de 8 bits
consécutifs est appelé un **octet** ou **byte** en anglais."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Exercices de conversion de nombres binaires en nombres décimaux\n",
"\n",
"1. Déterminez la valeur décimal du nombre binaire $101_2$.\n",
"2. Déterminez la valeur décimal du nombre binaire $10_2$.\n",
"3. Déterminez la valeur décimal du nombre binaire $10101_2$.\n",
"4. Déterminez la valeur décimal du nombre binaire $1101101_2$.\n",
"5. Déterminez la valeur décimal du nombre binaire $10000_2$.\n",
"6. Déterminez la valeur décimal du nombre binaire $100011_2$.\n",
"7. Comptez de 0 à 16 en binaire."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Conversion d'un nombre décimal en nombre binaire\n",
"\n",
"#### La méthode non formelle\n",
"* De manière non formelle, pour représenter un nombre décimal $n$ en binaire,
on cherche tout d'abord la plus grande puissance de deux que l'on peut mettre dans
$n$. \n",
"\n",
"* Une fois que l'on a trouvé ce nombre, on calcule la différence entre le
nombre $n$ et la plus grande puissance de deux contenu dans $n$.\n",
"\n",
"* A partir du résultat, on recherche la plus grande puissance de 2 que l'on
peut mettre dedans et on réitère l'opération jusqu'à arriver à un résultat de 0.\
n",
"\n",
"##### Exemple de conversion d'un nombre décimal en nombre binaire avec la
méthode non-formelle:\n",
"* On cherche à convertir le nombre décimal 157 en binaire:\n",
" 1. On cherche la plus grande puissance de deux que l'on peut mettre dans
157 => $2^7=128$. On met **1** fois $2^7$ dans l57\n",
" 2. On calcule la différence entre 157 et 128 => 29\n",
" 3. On ne peut pas mettre $2^6$=64 dans 29. On met **0** fois $2^6$ dans
29.\n",
" 4. On ne peut pas mettre $2^5$=32 dans 29. On met **0** fois $2^5$ dans
29.\n",
" 5. On peut mettre $2^4$=16 dans 29. On met **1** fois $2^4$ dans 29.\n",
" 6. On calcule la différence entre 29 et 16 => 13.\n",
" 7. On peut mettre $2^3=8$ dans 13. On met **1** fois $2^3$ dans 13.\n",
" 8. On calcule la différence entre 13 et 8 => 5.\n",
" 9. On peut mettre $2^2=4$ dans 5. On met **1** fois $2^2$ dans 5.\n",
" 10. On calcule la différence entre 5 et 4 => 1.\n",
" 11. On ne peut pas mettre $2^1=2$ dans 1. On met **0** fois $2^1$ dans 1.\
n",
" 12. On peut mettre $2^0=1$ dans 1. On met **1** fois $2^0$ dans 1.\n",
" 13. On calcule la différence entre 1 et 1=> 0, on s'arrête là.\n",
"\n",
"* Le nombre décimal $157_{10}$ s'écrit donc $10011101_{2}$ car:\n",
"\n",
"\n",
"(**1** $*2^7$) + (**0** $*2^6$) + (**0** $*2^5$) + (**1** $*2^4$) + (**1**
$*2^3$) + (**1** $*2^2$) + (**0**$*2^1$) + (**1** $*2^0$) = 157\n",
"\n",
"\n",
"#### La méthode Euclidienne\n",
"\n",
"* D'une manière plus formelle, on utilise souvent **la méthode euclidienne**
pour convertir un nombre décimal en binaire. Cette méthode fonctionne de la manière
suivante:\n",
"\n",
" * On prend le nombre en base 10.\n",
" * On le divise par 2 et on note le reste de la division (soit 1 soit 0)\
n",
" * On refait la même chose avec le quotient précédent, et on met de nouveau
le reste de côté.\n",
" * On réitère la division, jusqu'à ce que le quotient soit 0.\n",
" * Le nombre en binaire apparaît alors : il suffit de prendre tous les
restes de bas en haut.\n",
"\n",
"##### Exemple de conversion d'un nombre décimal en binaire avec la méthode
Euclidienne:\n",
"\n",
"![alt text](https://i.ibb.co/DLwX14Z/methode-euclidienne.png \"Méthode
euclidienne\")\n",
"\n",
"* Le nombre 185 en base 10 vaut donc 10111001 en binaire. \n",
"* **Attention, il faut bien lire de bas en haut**"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Exercices de conversion de nombres décimaux en nombres binaires \n",
"* Transformez les nombres décimaux suivants en binaire:\n",
"\n",
" a) $345_{10}$\n",
"\n",
" b) $16_{10}$\n",
"\n",
" c) $49_{10}$\n",
"\n",
" d) $163_{10}$\n",
"\n",
" e) $965_{10}$\n",
"\n",
" f) $0_{10}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### L'addition de nombres binaires\n",
"* Les additions de nombres binaires sont aussi simples que pour les nombres
décimaux. \n",
"* Concrètement, on additionne en colonne les nombres en base 2 et on pose une
retenu dans le cas où on l'additionne 1 avec 1. \n",
"\n",
"#### Tableau de l'addition binaire\n",
"\n",
"<img width=\"400\" src=\"https://i.ibb.co/crNQJfW/Table-addition-binaire.gif\"
alt=\"Addition binaire\">\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Exercices sur l'addition de nombres binaires\n",
"* Transformez chacun des nombres de ces additions en binaire, faites la somme
en binaire et transformer le résultat en décimal pour vérifier votre calcul.\n",
"\n",
" a. $67_{10}$ + $33_{10}$\n",
"\n",
" b. $55_{10}$ + $23_{10}$\n",
"\n",
" c. $10_{10}$ + $5_{10}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Représentation des nombres négatifs décimaux en binaire\n",
"\n",
"#### Rappels sur les nombres binaires\n",
"* Avant de voir en détails la manière par laquelle les ordinateurs
représentent les nombres négatifs, récapitulons ce que nous avons vu jusqu'à
maintenant pour les nombre binaires:\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/jpeg":
"/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDBgYFhsaGRodHRsfGCgmICIgJConKyUoMDMxNzkoLi05P1
BHNUBSRSsyRGFFS1NWW1xbMkJlbWRYbFBZW10BERISGRYZLxsbL1c4N0JXV11XV11XXVdXV1dXYldXV1dXX
VdXXVdXXVdXV1dXV1dXV1ddV1ddV1dXV1ddXVdXV//AABEIAWgB4AMBIgACEQEDEQH/
xAAbAAEAAgMBAQAAAAAAAAAAAAAAAQMEBgcFAv/
EAEUQAQABAwEFBAcGAwUFCQAAAAABAgMEERIXU5LSBSExgRMVMkFRYXEUIlKRobFCwdEGM1RygiMkNGKDB0
NEZHOT4eLw/8QAGQEBAQEBAQEAAAAAAAAAAAAAAAECAwQF/
8QAHxEBAQACAgIDAQAAAAAAAAAAAAECESFREjETFEED/
9oADAMBAAIRAxEAPwDn4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA26j/
s6zZjX0uNzV9D63cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43Ddxnc
XG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3c
Z3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3Fxuavo
Bp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43Ddxn
cXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3
cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3Fxuav
oBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43Ddx
ncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g
3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3FxuavoBp43DdxncXG5q+g3cZ3Fxua
voB0yx7PnL6rrimJmZiIjxmfc+bHs+cvK/
tTVMYv1uUxP6tYzysiW6m2Z62xuPb5oPW2Nx7fNDRKKKqtdmJnSNZ0jXSPjKJiY01iY1jWPnHxev62Pbh81
6b562xuNb5oPW2NxrfNDQ31TRMxVMRrFMaz8o10/mfWnZ816b162xuNb5oPW2NxrfNDQ0H1p2fNem+
+tsbjW+aD1tjca3zQ0J90UTOukeEaz8oPrTs+a9N69bY3Gt80HrbG41vmhoZpPj7o8T607PmvTfPW2NxrfN
BHauNxrfNDR5x64iqZp0imdJ107p+CpPrY9r8t6dJidfBLzuwKpnEta/
hmPymXovJZq6dpdwARQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdj2fOXk/2q/4WP/Vp/
m9ax7PnLA7fxK72PNNEa1RVFUR8dPd+rf8AO6ylZy9VqeBkei9JVExFXo42dffO1TOn5RLLruWdY9HVRE+g
jYmuO6mZrqmaZ1jx0nRh+rsjg3OWT1dkcG5yy99mNu9vNNz8ZtORZiuNIt7M3p29aY02dmnXTXwjXV82cim
aJnat03KrGk6xERtRXr3xpp4QxPV2RwbnLJ6uyODc5ZTxx7N3pl3MizExERRszkff0pjXY0p10+EaxPg+5v
WvSR/dR3VRtbVPdEzGmn3NNY7/
ABj3sH1fkcG5yyersjg3OWTxx7Xd6fVi7TR6aYmmZ0/2czTHfO1HfET8mb6bHj0mzFE61zMxMxTE0zEaafd
n36+GjA9XZHBucsnq/I4NzllbMb+pN9PTqtU027cTs006Wprmaafu60/
Tv1mfJRfyKNm7TRVRE1WKdfCdaonvjXSO/
T5QxasLJmIibd2YjwiYq0jyfHq7I4NzllmYz9q23pnXMqjXZpm3NP2jXSYiI02Y9+nd3sDN2fSTs1bUd3f3
fDw7oiJ+uj69XZHBucskdm5E93obnLLU8Z+pd38bd/Z//
g7X0n95ekw+yceq1j26Kvainv8ArM66fqzHz8rvKvVj6AGVAAAAAAAAAAAQCRVTkUTVNMV0zVHjETGseT6t
3Kao1pmKo+MTqD7BAJFX2m39779P3JiKu/2ZnTun84WAkAAYPauRXbop2Jppmq7TTNdUaxRE+/
T9PN99l5FV3HtXKtNa6ImdO6J+cLrjab50ywEUBj3cuii5FuddZoqr+UU06azP5gyBXZvU3KKa6e+mqmJj3
d0+HcsAETL5t3aa41pqiqPjExIPsAAQiiuKo1iYmPjAPoAAAAAAAFdj2fOX2+LHs+crAQJAQJAQJAQJAQJA
QJAQkAAAAAAAAAAAAQApxcim9biuInSdY7/HumY/kuYHYv8Acafhu3Y/
KupfxP1g28exbyrNiimm1FmnapmY0quVTExsxP8AFERMzPz0TRdx7efFFrYtzFExdpo7tqqrTSNmPGY75mf
dr82fl9nReriarlexE0z6ONnZmaZ1iddNY8pZdNqmJmYpiJnxmI75+rXkxMWLav1Tl3bcz92LNuqI+czXE/
tDMlgUf8fX88Wj9Kq/6s9mtRqVPaEVWa7s0zMVZ8VzER/
BTFOkzPhEezPe2XAyvTWqbmzNO1r3T9dNfp733RZt0TVMREbWmvwnSNPD6Jqv0R410x9ZhrK79RMZZ7qv7T
P2j0Wnd6Hb189NGQ8e92jj05tFU3rUU/Z6omdunx2qdI/dleucX3XqJ+k6/slxqzKI7cjXGriY1omaYr/
ybUbU/lq+exL21ammKorpt17FFceFdMRGk/PTXSfnD7ntjH/HM/Siuf5IjtfGj+PT/
RVH8l51rScb3t6CicmPTRa0nWbc16/
SYjT9WP65xeLT56sL1rjfbIq9Nb2fs8xrNURGu14JMb0tyj23mdr4FVdNdyi5VRV6CqmYiInajx0747lsds
4n+Js89P8AV9etsWf/ABFn/wByn+pJYWy/r57IxbVFmiq3Ht26ZmqZmap7u7WZ+qy/
fqpyLNEezXTXr5aafui32hixERTesxERpERXT3R8PFiZWZanJxpi7bmP9pE6VR3a0/8Awc2nEjPz6LdVm5F
3utzRO336fd07+9h9j4+lVd6LfoqblNMUUaaTs066VVR8Z1/
KIZV+5Yu26rdVdFVNdM01RtR3xKrDomifvZM3adNIirY1j56xEak9F9s5i9m5NV21t1REa3K4jT8MVTEfpD
I9JT8Y/Ng9i1xGLb1mP4vf/wA0prhd8re0btyKYotRPpLk6RVp3UR765+nuj3yo/s9RFOHaiP+bx/
zS9GmqJ74mJ+ijBxfQ24txVNURM6TPwmZnT9V3xpNc7ZIhLLQAAAAACux7PnKxXY9nzlYAAAAAAAAAAAAAA
AAAAAAAAAAApycem7Ts1bWmuv3appn84nVcA8/1X8L+RH/
AFNf3iWF2Z2fM+mj7RfjZyK47qqflOvh83uPP7N7r2XT/
wCYifzt0NzK6rFxm4n1XP8Aicmf9cf0PVVPvvZE/wDVq/
kz3l3O1K6orqt0U026JmKrl6rZjWPGIpjvn9GfKx0x/l5emPPZdv7ZFM13piceZ/va9e6qPfr4d/
gzfUuP76a5/
wA1y5P71Mexerqv4ty5TFNVdq7ExGvxpmPHw7o10eutyvDHhJbGD6lxODRP1jX933T2VjR4WLXJSxLmbd/
287dq3RRd2dquJnSIiP4Y01mdfizuz7lyuzRVdjSuadZjTT9Pd9GfK10v8vGbYl3Hooy7GzRTETaux3REfh
n+T0oiGB2l929i1+6L80z9KqKo/
fR6C38c5+iIqifCdXi9oVx6eiMm5Fuz6OqYiKppiqdYjSqf4u73L+ycamK67tFuLVuqmKaKdNmZiNfvzHu1
1/Jnbvf5yY+Vr1NHn3YiM213eOPcj8qqP6vRefnfdyMav3bddE/6qdY/WmGsXDJm+jp/
DH5Piu1biJmqmjSI1mZiFrAzLNd6v0dUaWaYiqqdf7yfwfKO7v8Aj3Jut44y3lbj0WLtFNdFFFVNUaxOzH9
GJ2lh2ou4s+jo0+0aT92O+Jor8fPRf2HH+52Pnapn841R213WYr4d63XP0iqNf01XG1P64zG2dLp7Ox+Da5
Kf6PmeysWf+4tclLKqnumY7+5rdu7RXair0t2vLrjXYorqiaK/
w7PhTEfOEuVjeH8pk9j1Pif4e1yQ8zs3sTFu2aors0zMXrtOvfE6RcqiPD5aPet67MbXfOnfp8WL2faqoqv
xMaUzkTVR84mmmZn89Wplde3G4zfpi4n9nrFqjZ+9M6zpVFU0Tp8Pu6a+a71Pa/Hf1+PprnU+8/
Lqp0t2o1vVx92PdTH46vlH6vrsq7VcxrNdU61VWqZmfjOninnd+3T4pMfLSzFxYta6VXKtfx1TVp9NWQCJr
QAAAAACux7PnKxXY9nzlYAAAAAAAAAAAAAAAAAAAAAAAAAAAw8ezVTkX6pj7ldNuYn41RExP7UsxAmhiR2Z
Z9J6TY1q2trvmZiKvxRT4RPzZgNTKz0+KrdMzEzETNPhPw17u59JBGPVg2Zuelm3RNz8UxGq9ILbb7VZOPR
domiunapmYnT5xOsT+iyI0jRIIiaYnxgSAPmqiJ01iJ0nWNfjHvfQCBICjDxos0RRTMzTEzpr7omfDyfd61
TXRVRVGtNVMxMT74n3LAW3fNfNNOkREe6CKY8dH0CIEgI0Y3Z+NNq1FuZidmZ00/
DrOkfkygXfGgAQAAAAABXY9nzlYrsez5ysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAABXY9nzlYrsez5ysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB
XY9nzlYrsez5ysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVZGRRaomuudmmNNZ+qx5Vd2i5lTt1x
Tbx5iIiatNbsxrMz8dImPzlZNpbpdPbWP7qqqv8luur9oWY3aFF2rZim7HdrE1266InT5zHzZVMxMaxOsfJ
JwciUJRQAAAAAAAAAAAAAFdj2fOViux7PnKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGF2j2lbx9
jb/
AI6tI1mIj5zMz3Qw68vs+qqa4i1duT4+joi5VP5RL2JpifGNSIiPBZYzZXn9kY80ekq9H6KiuvWi33fdjTv
nSO6NZ79IeihJbtZNACKAAAAAAAAAAAAAArsez5ysV2PZ85WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAArsez5ysV2PZ85WAAAAAAAAAAAAAAAAAAAAgEiAEgAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAArsez5ysV2PZ85WAAAAAAAAAAAAAAAAAAAMDteuqLdERVNMV3qKKqqZ0mKZn3T7vhr82
epysem7bqt1xrTVGk6d0/WJ90rPaXmMPK7NtxRVXRNVuummZiuK6vGPxd/
3o+rKwL03LFq5VGk126apj4TMasSezLlcRReyKrluPGnZppmv5VzHj5aavSiNFt4STlKEoZaYfaGXVRs0W4
iq9cnSiJ8IiPGur5R+8xCzs7Jm9Yt3JjSaqImY+E+99U41MXarvfNdVMU9/
uiNe6Ph4qeybVVFmKK40mmuuI+dO1Ok/
lo1xpnnbNAZaEJQCq5lW6ImarlFMROkzNURpPwfdu5TXEVUzFVM+ExOsS8TCyMazb2L0Uxfoqr1iada6pmZ
napjTWrXXXuZ/ZFmqi3VNVOxNd2quKPwxPhH198/OZas0zLtnoSxe0Mr0VuaojarmYpt0/irnwj/
97ollq8MiKonwnwS8jsPHmzcyLU1TVO1RXMz76qqY2p85iXrrZqpLuJARQAAAAAAAAAAAAAAAAAAAFdj2fO
Viux7PnKwAAAAAAAAAAAAAAAAAAECnK9LsxNnYmrXvivWImPhrHh+UsWMrLjxxaP8ATeif3phdJt6KGB9sy
f8ACVeVyhmWa5qpiaqZpmY76ZmJ0+XcWaJdrEDDyL+RTXMUWKa6fdPpNmfONlNFumYPP+05n+Gt+d//
AOj7s3svaiK7NqKZnvmm7MzHz0miNfzXRtmgIol58512iZi5jXNNZ0qtzFcTHunTun9D1zYj2tuj/Pbrp/
WYXxqeUZ+gxLHamNcqii3et1VT4UxVEz3fJlpoll9JRMDDv3simv7lmm5Rp3TFzZq/KY0/
ULWRTYpiuq5EfeqpiJ+ka6fvK15/26//
AIS5z2+opzb8zH+6VxGvjNdHd+rWqnlHoCEstAAAAAAAAAAAAAAAAAAAAK7Hs+crFdj2fOVgAAAAAAAAAAA
AAAAAAAIEgIEgIEgIEgCEgIEgPnZjXXSNUpAQJAQJAQkAAAAAAAAAAAAAAAAAAAAAV2PZ85WK7Hs+crAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV2PZ85WK7Hs+crAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV2PZ85WOW0f9oubEaeixuWvrfW8fO4WNy19YOo
Dl+8fO4WNy19ZvHzuFjctfWDqA5fvHzuFjctfWbx87hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4
WNy19ZvHzuFjctfWDqA5fvHzuFjctfWbx87hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19Zv
HzuFjctfWDqA5fvHzuFjctfWbx87hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjct
fWDqA5fvHzuFjctfWbx87hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjctfWDqA5f
vHzuFjctfWbx87hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjctfWDqA5fvHzuFjc
tfWbx87hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjctfWDqA5fvHzuFjctfWbx87
hY3LX1g6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjctfWDqA5fvHzuFjctfWbx87hY3LX1g
6gOX7x87hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjctfWDqA5fvHzuFjctfWbx87hY3LX1g6gOX7x8
7hY3LX1m8fO4WNy19YOoDl+8fO4WNy19ZvHzuFjctfWDqA5fvHzuFjctfWbx87hY3LX1g08AAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AH/2Q==\n",
"text/html": [
"\n",
" <iframe\n",
" width=\"500\"\n",
" height=\"300\"\n",
" src=\"https://www.youtube.com/embed/1h8z7_1qvQA\"\n",
" frameborder=\"0\"\n",
" allowfullscreen\n",
" ></iframe>\n",
" "
],
"text/plain": [
"<IPython.lib.display.YouTubeVideo at 0x21d8165ca48>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from IPython.display import YouTubeVideo\n",
"YouTubeVideo('1h8z7_1qvQA', width=500)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Le complément à 2\n",
"* La manière la plus courante de représenter des nombres entiers négatifs dans
un ordinateur est la représentation en **complément à 2**. \n",
"\n",
"* Le complément à 2 est construit de telle manière à ce qu’on puisse continuer
à effectuer l’addition comme avec les nombres binaires non signés, à savoir
l’addition standard des bits en colonne.\n",
"\n",
"* Pour déterminer la représentation binaire d'un nombre négatif, on effectue
dans l’ordre les trois étapes suivantes :\n",
"\n",
" 1. Déterminer la représentation binaire de la valeur absolue du nombre.\
n",
" 2. On détermine le complément à 1 de la représentation binaire trouvée à
l’étape précédente en inversant tous les bits.\n",
" 3. On additionne 1 au complément à 1 trouvé dans l’étape précédente (d’où
le nom complément à 2).\n",
"\n",
"\n",
"#### Exemple de conversion d'un nombre décimal négatif en binaire\n",
"\n",
"* On cherche à convertir le nombre -6 à l'aide de la représentaion en
complément à deux. \n",
"* En suivant les étapes précédemment décrites, on obtient:\n",
" 1. $6_{10}$ s’écrit en binaire sur un octet (8 bits) :
$00000110_{2}$. \n",
" 2. Complément à un: si on échange les 0 et les 1, on obtient :
$11111001_{2}$.\n",
" 3. On ajoute un au complément à un: si on ajoute 1, on obtient :
$11111010_{2}$.\n",
" \n",
" \n",
"\n",
"* $-6_{10}$ est donc le mot binaire $11111010_{2}$ en complément à deux.\n",
"\n",
"#### Exercices de représentation de nombres binaires en complément à deux\n",
"* Représentez les nombres négatifs suivants en binaire grâce à la notation en
complément à deux. Encodez chacun de ces nombres sur 8 bits.\n",
"\n",
" a) $-10_{10}$\n",
"\n",
" b) $-20_{10}$\n",
" \n",
" c) $-4_{10}$\n",
"\n",
" d) $-11_{10}$\n",
"\n",
"\n",
"### Représentation des nombres binaires négatifs en décimal\n",
"\n",
"#### L'inverse du complément à deux\n",
"* Le processus pour convertir un nombre négatif en complément à deux en
décimal est le suivant:\n",
" 1. Calculer le complément à un du nombre\n",
"\n",
" 2. Ajouter un au résultat obtenu à la première étape.\n",
"\n",
" 3. Interpréter le résultat comme une représentation binaire d'un nombre
positif et ajouter un signe négatif.\n",
"\n",
"#### Exemple de conversion d'un nombre binaire négatif en décimal\n",
"* On cherche à calculer la valeur décimale du nombre $11110101_2$ \n",
"\n",
" 1. Calculer le complément à un du nombre: $00001010_2$\n",
" 2. Ajouter un au résultat obtenu: $00001011_2$\n",
" 3. Interpréter le résultat comme une représentation d'un nombre positif:
$00001011_2$=$11_{10}$, il reste à ajouter le signe négatif devant le nombre et on
obtient $-11_{10}$\n",
"\n",
"#### Exercices de conversion de nombres binaires négatifs en nombre décimaux\
n",
"* Convertissez les nombres binaires (encodés avec la notation en complément à
deux) en nombre décimal:\n",
"\n",
" 1. $11011011_{2}$ = \n",
" 2. $11110000_{2}$ = \n",
" 3. $11100100_{2}$ = \n",
" 4. $00111001_{2}$ = \n",
" 5. $11000011_{2}$ = "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Système hexadécimal\n",
"* Le système hexadécimal est un système d'écriture informatique qui utilise
**la base 16**.\n",
"* Il utilise 16 symboles notés de 0 à 9 puis de A à F. \n",
"\n",
"![Système hexadécimal](https://i.ibb.co/1Xy4MQc/Hexadecimal-conversion-
table.jpg \"Système hexadécimal\")\n",
"\n",
"\n",
"### Conversion d'un nombre hexadécimal en nombre décimal\n",
"\n",
"* Comme dans les autres bases, pour convertir un nombre hexadécimal en
décimal, on multiplie la valeur de chaque rang du nombre par \"le symbole à la
puissance du rang\". Prenons un exemple et cherchons à savoir combien vaut
$A3F_{16}$ en base 10.\n",
"\n",
"* On cherche à trouver ce que vaut $A3F_{16}$ en décimal:\n",
"\n",
"<center>\n",
"$A3F_{16}$ = 10 * $16^2$ + 3 * $16^1$ + 15 * $16^0$ = $2623_{10}$\n",
"</center>\n",
"\n",
"* Chaque 0 ou 1 de ce nombre est appelé **un bit**. \n",
"* Une séquence de 8 bits consécutifs est appelé **un octet** ou **byte** en
anglais.\n",
"\n",
"\n",
"### Conversion d'un nombre décimal en hexadécimal\n",
"* Il n'est pas facile de convertir à la volée entre le système décimal et
l'hexadécimal. Il est plus pratique de transformer d'abord le nombre en binaire,
puis de le regrouper par groupes de 4 caractères qu'il est facile de convertir en
hexadécimal. \n",
"\n",
"* On cherche à représenter le nombre $1763_{10}$ en hexadécimal :\n",
"\n",
" * Ecriture décimale: $1763_{10}$\n",
" * Ecriture binaire: $11011100011_{2}$\n",
" * Ecriture binaire par groupe de 4 bits: $0110$ $1110$ $0011_{2}$\n",
" * Hexadécimal: $6E3_{16}$\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercices de conversions de nombres hexadécimaux en nombres décimaux (et
vice-versa)\n",
"Convertissez les nombres décimaux en hexadécimal et les nombres hexadécimaux
en décimaux\n",
"\n",
"1) $FFF_{16}$\n",
"\n",
"2) $1293_{10}$"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bases générales\n",
"### Formule générale de la représentation d'un nombre dans une base
quelconque\n",
"\n",
"* Soit B un entier naturel fixe, appelé **base**, tout entier naturel **a**
peut s'écrire d'une manière et d'une seule sous la forme :\n",
"\n",
"<br>\n",
"<center>\n",
"$a = a_0*B^0 + a_1*B^1 + a_2*B^2 + ... + a_n*B^n = \\sum_{i=0}^{n} a_i$*$B^{i}
$ \n",
"</center>\n",
"<br>\n",
"\n",
"où les $a_0, a_1, ..., a_n$ sont des entiers naturels strictement inférieurs à
B et où $a_n$ est non nul"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercices récapitulatifs\n",
"\n",
"### Conversions de nombres binaire en nombres décimaux (et vice-versa)\n",
"**Convertissez les nombres décimaux suivants en binaire:**\n",
"\n",
"a) $54_{10}$\n",
"\n",
"b) $46_{10}$\n",
"\n",
"c) $236_{10}$\n",
"\n",
"**Convertissez les nombres binaires suivant en décimal**\n",
"\n",
"a) $1001_{2}$\n",
"\n",
"b) $1111_{2}$\n",
"\n",
"c) $0101_{2}$\n",
"\n",
"**Effectuez l'addition binaire suivante:**\n",
"\n",
"a) $001_{2}$ + $110_{2}$ \n",
"\n",
"**Trouvez la représentation en complément à deux du nombre suivant:**\n",
"\n",
"a) $-23_{10}$\n",
"\n",
"\n",
"### Conversions de nombres hexadécimaux en nombre décimaux (et vice-versa)\n",
"**Convertissez les nombres décimaux en hexadécimal:**\n",
"\n",
"a) $23_{10}$\n",
"\n",
"b) $45_{10}$\n",
"\n",
"**Coonvertissez les nombres hexadécimaux en décimal:**\n",
"\n",
"a) $3C5_{16}$\n",
"\n",
"b) $4D1_{16}$\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sources\n",
"* https://fr.khanacademy.org/math/cycle-3-v2/xd83da73b6a4e46c4:nombres-et-
calculs-nombres-entiers/xd83da73b6a4e46c4:numeration-binaire/v/number-systems-
introduction\n",
"* https://mathete.net/introduction-langage-binaire/\n",
"* http://villemin.gerard.free.fr/aNombre/FORMATIO/Decimal.htm\n",
"* http://symbolinks.com/yi-king.html\n",
"* https://www.universalis.fr/encyclopedie/numeration/3-numeration-de-position-
a-base-constante/\n",
"* Cours de Cédric Donner, Collège du Sud.\n",
"\n",
"## Auteur\n",
"* Johan Jobin, Collège du Sud."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.4"
},
"toc": {
"base_numbering": 1,
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"title_cell": "Table des matières",
"title_sidebar": "Table des matières",
"toc_cell": false,
"toc_position": {
"height": "calc(100% - 180px)",
"left": "10px",
"top": "150px",
"width": "662px"
},
"toc_section_display": true,
"toc_window_display": true
}
},
"nbformat": 4,
"nbformat_minor": 2
}

Vous aimerez peut-être aussi