Ajouts et corrections diverses avant rentrée
This commit is contained in:
parent
878b016119
commit
b9456a4295
28 changed files with 652 additions and 559 deletions
4
src/cours/CIEL1/02-reseau/cours/ET.svg
Normal file
4
src/cours/CIEL1/02-reseau/cours/ET.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 123 KiB |
4
src/cours/CIEL1/02-reseau/cours/NOT.svg
Normal file
4
src/cours/CIEL1/02-reseau/cours/NOT.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 87 KiB |
4
src/cours/CIEL1/02-reseau/cours/OU.svg
Normal file
4
src/cours/CIEL1/02-reseau/cours/OU.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 121 KiB |
4
src/cours/CIEL1/02-reseau/cours/XOR.svg
Normal file
4
src/cours/CIEL1/02-reseau/cours/XOR.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 141 KiB |
|
|
@ -1,10 +1,10 @@
|
|||
# L'adressage IP
|
||||
|
||||
## Première approche de l'adressage IP
|
||||
## 1 - Première approche de l'adressage IP
|
||||
|
||||
Commençons par une approche globale et simplifiée pour bien comprendre comment fonctionne l'adressage IP.
|
||||
|
||||
### Adressage logique
|
||||
### 1.1 - Adressage logique
|
||||
|
||||
Nous allons faire une analogie avec le courrier. Imaginons que nous souhaitons envoyer du courrier à des personnes précises. On pourrait attribuer à chaque personne un identifiant à la naissance (son nom par exemple), qui nous permettrait de l'identifier à coup sûr, et mettre cet identifiant sur l'enveloppe. Cet identifiant unique, en informatique, correspond à l'adresse MAC. Il permet d'identifier de manière unique une machine physique.
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ Un **réseau logique** est formé par des **hôtes** (poste informatique, télé
|
|||
Dans les réseaux informatiques, nous utilisons le protocole IP (Internet Protocol) pour définir des adresses logiques.
|
||||
```
|
||||
|
||||
### Comment est formée une adresse IP ?
|
||||
### 1.2 - Comment est formée une adresse IP ?
|
||||
|
||||
Nous allons parler ici d'adresse IPv4 (IP version 4), le protocole encore majoritairement utilisé dans le monde. Il existe également le protocole IPv6 (IP version 6) qui devrait remplacer IPv4, mais pour de nombreuses raisons techniques et politiques, cette transition tarde depuis des années.
|
||||
|
||||
|
|
@ -41,7 +41,7 @@ Pour savoir où s'arrêtent les parties gauche et droite, et donc à quelle part
|
|||
|
||||
Nous verrons plus loin le fonctionnement détaillé de l'adresse IP et du masque.
|
||||
|
||||
### Routeur et interconnexion de réseaux logiques
|
||||
### 1.3 - Routeur et interconnexion de réseaux logiques
|
||||
|
||||
Les réseaux logiques ont pour objectif de retrouver plus facilement l'emplacement d'un hôte sur le réseau. Mais comment ça se passe en réalité pour faciliter cette recherche ?
|
||||
|
||||
|
|
@ -59,7 +59,7 @@ En pratique, un routeur est une machine qui possède plusieurs cartes réseau, e
|
|||
|
||||
Les algorithmes impliqués dans le routage seront l'objet d'un autre cours. Pour le moment, contentons nous de savoir comment les réseaux logiques peuvent être interconnectés.
|
||||
|
||||
## L'adresse MAC
|
||||
## 2 - L'adresse MAC
|
||||
|
||||
```admonish success title="À retenir"
|
||||
L'**adresse MAC** (*Media Access Control*) ou **adresse physique** est un identifiant physique **unique** stocké directement dans la carte réseau. Toutes les cartes réseau ont une adresse MAC.
|
||||
|
|
@ -69,9 +69,9 @@ Elle est constituée de 48 bits (6 octets) et représentée sous forme hexadéci
|
|||
|
||||
**Exemple :** `5E:FF:56:A2:AF:15`
|
||||
|
||||
## L'adresse IP
|
||||
## 3 - L'adresse IP
|
||||
|
||||
### Structure d'une adresse IP
|
||||
### 3.1 - Structure d'une adresse IP
|
||||
|
||||
```admonish success title="À retenir"
|
||||
Une adresse IPv4 (Internet Protocol v4) est une suite de 32 bits (= 4 octets) exprimées sous la forme de 4 nombres décimaux (représentant les 4 octets) séparés par un point.
|
||||
|
|
@ -83,7 +83,7 @@ L'adresse IP d'un hôte permet de définir précisément
|
|||
|
||||

|
||||
|
||||
### Le masque
|
||||
### 3.2 - Le masque
|
||||
|
||||
```admonish success title="À retenir"
|
||||
Le masque est une suite de 32 bits constituée d'une suite de 1 et d'une suite de 0.
|
||||
|
|
@ -109,7 +109,7 @@ La notation CIDR consiste à faire suivre l'adresse IP par le nombre de bits à
|
|||
Le masque n'est pas forcément un multiple de 8 : n'importe quel nombre de bits entre 1 et 32 peut être un masque valide, selon la taille du réseau.
|
||||
```
|
||||
|
||||
### L'adresse de réseau
|
||||
### 3.3 - L'adresse de réseau
|
||||
|
||||
```admonish success title="À retenir"
|
||||
Un réseau est un groupe d'hôtes dont la partie réseau de l'adresse est identique. Un ET logique entre l'adresse IP et son masque permettent de déterminer l'adresse de réseau.
|
||||
|
|
@ -121,7 +121,7 @@ Pour rappel, quand on applique le ET logique, seul 1 ET 1 = 1, tout le reste vau
|
|||
|
||||
Si on fait l'opération ET logique, on voit que les bits de la partie hôte sont tous à zéro ( = ils sont masqués) alors que les bits de la partie réseau gardent leur valeur.
|
||||
|
||||
### L'adresse de diffusion
|
||||
### 3.4 - L'adresse de diffusion
|
||||
|
||||
```admonish success title="À retenir"
|
||||
**L'adresse de diffusion** (ou *broadcast* en anglais) permet d'envoyer un message à l'ensemble des hôtes connectés au réseau.
|
||||
|
|
@ -131,7 +131,7 @@ L'adresse de diffusion est la dernière adresse du réseau. Elle est constituée
|
|||
|
||||

|
||||
|
||||
### Plage adressable et nombre d'hôtes possibles
|
||||
### 3.5 - Plage adressable et nombre d'hôtes possibles
|
||||
|
||||
```admonish success title="À retenir"
|
||||
La plage adressable est l'ensemble des adresses que peut prendre un hôte sur le réseau.
|
||||
|
|
@ -160,9 +160,9 @@ On utilise toute la plage des valeurs possibles sur ce nombre de bits, mais deux
|
|||
Dans le réseau 192.168.1.0/24, il y a 32-24 = 8 bits dédiés à la partie hôte, soit 256 valeurs possibles. Comme on enlève l'adresse de réseau et l'adresse de diffusion, il reste 254 valeurs, soit une plage disponible de 254 adresses sur ce réseau.
|
||||
|
||||
|
||||
## Les catégories d'adresses
|
||||
## 4 - Les catégories d'adresses
|
||||
|
||||
### Adresses publiques
|
||||
### 4.1 - Adresses publiques
|
||||
|
||||
Les adresses IP sont censées être uniques sur chaque hôte. Dans un réseau privé local, c'est plutôt simple, il y a généralement peu de machines, et le réseau est isolé du reste du monde. Sur internet, il y a des milliards d'hôtes, ça devient donc beaucoup plus difficile. Il a fallu confier la gestion des adresses à un organisme chargé d'organiser et garantir l'unicité des adresses IP.
|
||||
|
||||
|
|
@ -174,19 +174,19 @@ Chacun de ces RIR attribue ainsi des plages à des RIL (Registres Internet Locau
|
|||
|
||||
Toutes ces adresses, distribuées par L'IANA, sont des adresses dites publiques.
|
||||
|
||||
### Adresses privées
|
||||
### 4.2 - Adresses privées
|
||||
|
||||
Les adresses privées sont celles utilisées dans les réseaux privés comme par exemple les réseaux internes des entreprises ou chez des particuliers. Ce sont des plages d'adresses bien définies qui ne seront jamais attribuées par l'IANA pour éviter tout risque d'interférence avec des adresses existant sur internet.
|
||||
|
||||
Vous pouvez les utiliser sans risque pour tout réseau interne (entreprise ou chez vous). Vous pouvez également définir des masques plus restrictifs que ceux proposés par défaut.
|
||||
|
||||
### Adresses spéciales
|
||||
### 4.3 - Adresses spéciales
|
||||
|
||||
#### L'adresse de réseau
|
||||
#### 4.3.1 - L'adresse de réseau
|
||||
|
||||
Comme dit plus haut, l'adresse de réseau est l'adresse dont la totalité des bits de la partie hôte sont à 0. Cette adresse désigne le réseau en lui-même, pas un hôte en particulier.
|
||||
|
||||
#### La boucle locale
|
||||
#### 4.3.2 - La boucle locale
|
||||
Les adresses 127.0.0.0/8 sont utilisées pour la boucle locale (c'est à dire atteindre la machine elle-même). On utilise plus généralement l'adresse de bouclage (loopback) 127.0.0.1
|
||||
|
||||
- Elle désigne la machine locale
|
||||
|
|
@ -194,19 +194,19 @@ Les adresses 127.0.0.0/8 sont utilisées pour la boucle locale (c'est à dire at
|
|||
- Elle simule un accès via le réseau même sans réseau
|
||||
- On peut l'utiliser pour des communications en local ou des tests
|
||||
|
||||
#### L'adresse de diffusion (broadcast)
|
||||
#### 4.3.3 - L'adresse de diffusion (broadcast)
|
||||
|
||||
Nous en avons parlé plus haut : c'est la dernière adresse disponible du réseau, celle où tous les bits de la partie hôte sont à 1. Si on veut envoyer un message diffusé à toutes les adresses d'un réseau précis (qui peut être différent du réseau de l'hôte émetteur), c'est cette adresse qu'il faut utiliser.
|
||||
|
||||
#### L'adresse de diffusion générale
|
||||
#### 4.3.4 - L'adresse de diffusion générale
|
||||
|
||||
255.255.255.255 : pour diffuser sur le réseau actuel de l'hôte, sans avoir à connaître l'adresse du réseau.
|
||||
|
||||
#### L'adresse d'initialisation
|
||||
#### 4.3.5 - L'adresse d'initialisation
|
||||
|
||||
0.0.0.0 : C'est l'adresse utilisée par un hôte lors de la phase d'initialisation (au moment où une machine cherche à se connecter à un réseau IP). Elle ne peut donc pas être affectée à une machine particulière.
|
||||
|
||||
### Classes d'adresses
|
||||
### 4.4 - Classes d'adresses
|
||||
|
||||
Historiquement, les adresses IP étaient regroupées en cinq classes. C'était uns sytème rigide, et le masque était implicitement déduit de l'adresse IP (certaines plages d'adresse appartenaient à une classe donnée, et cela suffisait à déterminer le masque). Ce système est devenu obsolète depuis le milieu des années 1990. Nous le mentionnons ici pour que vous en ayez déjà entendu parler.
|
||||
|
||||
|
|
@ -220,13 +220,15 @@ Les classes A, B ou C définissaient des réseaux d'une certaine taille, et une
|
|||
|
||||
Les classes D et E étaient particulières. D servait aux machines diffusant les informations de routage, et E était une plage d'adresses réservées pour un éventuel usage futur.
|
||||
|
||||
Des entreprises se voyant attribuer des plages de classe A avaient 16 millions d'adresses IP pour elles seulles. Imaginez le gaspillage d'adresses que ça représentait.
|
||||
Des entreprises se voyant attribuer des plages de classe A avaient 16 millions d'adresses IP pour elles seules. Imaginez le gaspillage d'adresses que ça représentait.
|
||||
|
||||
Aujourd'hui ce système n'existe plus, et n'importe quelle adresse IP peut avoir n'importe quel masque. C'est le système sans classe ("classless" comme le C dans CIDR)
|
||||
|
||||
Nous manquons déjà cruellement d'adresses IPv4 alors imaginez si on avait gardé ce système.
|
||||
|
||||
## Le plan d'adressage
|
||||
## 5 - Le plan d'adressage
|
||||
|
||||
### 5.1 - Le plan d'adressage
|
||||
|
||||
Les organisations ont souvent besoin de segmenter leur réseau interne selon leur mode de fonctionnement. Pour cela, elles vont mettre en place un plan d'adressage précis, qui permettra de distribuer des adresses aux machines hôtes selon leur rôle dans l'organisation, mais également permettre ou empêcher la communication entre certaines machines. L'organisation pourra donc découper son réseaux en sous-réseaux de tailles (et de masques) différents.
|
||||
|
||||
|
|
@ -241,7 +243,7 @@ Le plan d'adressage devra répondre à certaines contraintes pour être viable,
|
|||
- On pourra donc utiliser un masque de 29 bits. Nous pouvons fixer l'adresse de sous-réseau à 10.0.0.0/29 et donc avoir un réseau pour notre service comptabilité qui couvre la plage de 10.0.0.1 à 10.0.0.6
|
||||
|
||||
|
||||
### Obtenir une adresse IP
|
||||
### 5.2 - Obtenir une adresse IP
|
||||
|
||||
Toutes les machines qui veulent être rattachées au réseau IP doivent donc avoir une adresse IP unique. Pour cela, il y a **deux stratégies** possibles :
|
||||
- L'adresse IP est configurée de façon **statique** sur la machine.
|
||||
|
|
|
|||
BIN
src/cours/CIEL1/02-reseau/cours/image.png
Normal file
BIN
src/cours/CIEL1/02-reseau/cours/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 9.6 KiB |
103
src/cours/CIEL1/02-reseau/cours/operations.md
Normal file
103
src/cours/CIEL1/02-reseau/cours/operations.md
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# Opérations booléennes
|
||||
|
||||
Les opérations que l'on peut effectuer sur des bits sont théorisées par le mathématicien George Boole, dans le cadre de l'agèbre de Boole, ou calcul booléen.
|
||||
|
||||
En informatique, on peut avoir besoin de faire des opérations binaires dans deux cas :
|
||||
- En programmation, quand ion veut valider si une condition est vraie ou fausse. En Python, cela se traduira par l'utilisation du type `bool` qui peut prendre les valeurs `True` ou `False`. C'est comme si on travaille avec un seul bit.
|
||||
- Faire des calculs sur les bits d'un nombre pour le modifier. C'est une utilisation plus rare en python, mais que l'on retrouve dans le domaine de l'informatique embarquée (soit en Python, soit en C ou C++) ou du réseau. On travaille avec la représentation binaire sous-jacente aux nombres. Il faut alors réfléchir aux nombres comme à des suites de bits, et les opérations s'appliquent les bits 1 à 1.
|
||||
|
||||
Nous allons voir dans la suite les opérateurs classiques pour le calcul booléen. Ces opérateurs existent en python, nous verrons donc la syntaxe python également.
|
||||
|
||||
```admonish warning title="Attention"
|
||||
Les opérateurs bit à bit en Python sont différents des opérateurs logiques utilisés dans les conditions.
|
||||
|
||||
- Les opérateurs utilisés dans les conditions travaillent avec des types booléens `bool` (valeur `True` ou `False`) et renvoient un résultat booléen. Ils s'écrivent avec des lettres (`and or not`). Comme ils sont très courants, ça facilite la lecture du code.
|
||||
- Les opérateurs bit à bit travaillent avec la représentation binaire des nombres entiers, c'est à dire directement avec les bits sous jacents aux nombres, et permettent de faire des calculs sur plusieurs bits à la fois. On travaille alors non pas avec des booléens, mais avec des nombres entiers vus comme des séries de bits. Ils sont représentés sous forme de symboles (`& | ~`)
|
||||
```
|
||||
|
||||
## Table de vérité
|
||||
|
||||
Nous allons donner pour chaque opérateur une table de vérité. La table montre le résultat de toutes les opérations possibles avec cet opérateur.
|
||||
Elle comporte plusieurs colonnes pour les **entrées** et la dernière colonne montre la valeur en **sortie**.
|
||||
|
||||
Nous utiliserons la valeur 1 pour dire Vrai ou `True` en python, et 0 pour dire Faux ou `False` en python.
|
||||
|
||||
## Opérateur ET
|
||||
|
||||
```admonish success title="A retenir"
|
||||
L'opérateur ET ne renvoie 1 que si les deux arguments sont à 1. Sinon il renvoie 0.
|
||||
|
||||
**Si A ET B valent 1**
|
||||
|
||||
|A|B|A ET B|
|
||||
|-|-|:-:|
|
||||
|0|0|0|
|
||||
|1|0|0|
|
||||
|0|1|0|
|
||||
|1|1|1|
|
||||
|
||||
En python :
|
||||
- `and` lorsqu'on travaille avec des booléens
|
||||
- `&` lorsqu'on veut travailler en bit à bit
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Opérateur OU
|
||||
|
||||
```admonish success title="A retenir"
|
||||
L'opérateur OU renvoie 1 si au moins l'un des deux arguments est à 1. Sinon il renvoie 0.
|
||||
|
||||
**Si A vaut 1 ou si B vaut 1 ou si les deux valent 1**
|
||||
|
||||
|A|B|A OU B|
|
||||
|-|-|:-:|
|
||||
|0|0|0|
|
||||
|1|0|1|
|
||||
|0|1|1|
|
||||
|1|1|1|
|
||||
|
||||
En python:
|
||||
- `or` lorsqu'on travaille avec des booléens
|
||||
- `|` lorsqu'on veut travailler en bit à bit.
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Opérateur NON
|
||||
|
||||
```admonish success title="A retenir"
|
||||
L'opérateur NON inverse la valeur du bit auquel il est appliqué.
|
||||
|
||||
|A|NON A|
|
||||
|-|:-:|
|
||||
|0|1|
|
||||
|1|0|
|
||||
|
||||
En python:
|
||||
- `not` lorsqu'on travaille avec des booléens
|
||||
- `~` pour l'inversion bit à bit.
|
||||
```
|
||||
|
||||

|
||||
|
||||
## Opérateur OU EXCLUSIF
|
||||
|
||||
```admonish success title="A retenir"
|
||||
OU EXCLUSIF renvoie 1 si seulement l'un des deux arguments est à 1. Sinon il renvoie 0.
|
||||
|
||||
**Si A seulement vaut 1 ou si B seulement vaut 1**
|
||||
|
||||
|A|B|A XOR B|
|
||||
|-|-|:-:|
|
||||
|0|0|0|
|
||||
|1|0|1|
|
||||
|0|1|1|
|
||||
|1|1|0|
|
||||
|
||||
En python,
|
||||
- il n'existe pas pour les `bool`
|
||||
- `^` pour les opérations bit à bit
|
||||
```
|
||||
|
||||

|
||||
|
|
@ -1,6 +1,6 @@
|
|||
# Représentation des entiers naturels
|
||||
|
||||
## Base 10 et généralisation
|
||||
## 1 - Base 10 et généralisation
|
||||
|
||||
Les nombres peuvent avoir plein de représentations différentes, selon les contextes. En informatique, on va en utiliser 4 :
|
||||
- Décimal (base 10)
|
||||
|
|
@ -51,7 +51,7 @@ La plus petite puissance (celle des unités en base 10) est de 0 (10⁰ = 1) et
|
|||
|
||||
Maintenant que nous avons vu comment fonctionnent les bases dans le cas général, nous allons parler des systèmes binaires et hexadécimal utilisés en informatique.
|
||||
|
||||
## La base 2, système binaire
|
||||
## 2 - La base 2, système binaire
|
||||
|
||||
Le système binaire est très utilisé en informatique. Il sert notamment en réseaux, et c'est là que nous l'utiliserons, mais également dans l'informatique dite bas niveau, c'est à dire proche de l'électronique.
|
||||
|
||||
|
|
@ -66,7 +66,7 @@ Chaque symbole est appelé un **bit** (**Bi**nary dig**it**) pour les distinguer
|
|||
|
||||
On regroupe souvent les bits en paquets de 8 que l'on va appeler **octets** (bytes en anglais). Un octet permet de représenter 256 nombres (de 0 à 255)
|
||||
|
||||
### MSB et LSB
|
||||
### 2.1 - MSB et LSB
|
||||
|
||||
Dans un nombre binaire on se réfère souvent aux bits situés aux extrémités:
|
||||
- On parlera de **MSB** (*Most Significant Bit*) ou **bits de poids fort** pour les bits les plus à gauche (dont le **poids/rang** est plus élevé)
|
||||
|
|
@ -79,7 +79,7 @@ Pour le nombre $1001_{|2}$ :
|
|||
|MSB|||LSB|
|
||||
```
|
||||
|
||||
### Multiples d'octets
|
||||
### 2.2 - Multiples d'octets
|
||||
|
||||
Pour parler des capacités de supports de stockage ou de la mémoire vive on parle en multiples d'octets. Il existe deux systèmes.
|
||||
|
||||
|
|
@ -96,11 +96,11 @@ Pour parler des capacités de supports de stockage ou de la mémoire vive on par
|
|||
- le gibioctet (Gio) = 2³⁰ octets = 1024 Mio
|
||||
- le tébioctet (Tio) = 2⁴⁰ octets = 1024 Gio
|
||||
|
||||
### Conversions
|
||||
### 2.3 - Conversions
|
||||
|
||||
Dans de nombreux cas il sera nécessaire de pouvoir convertir les nombres d'une base à l'autre. Nous l'utiliserons souvent en réseau, mais également en informatique bas niveau (embarquée).
|
||||
|
||||
#### Décimal vers binaire
|
||||
#### 2.3.1 - Décimal vers binaire
|
||||
##### Méthode des soustractions successives
|
||||
|
||||
La première méthode nécessite de connaître les puissances de 2 par coeur. Elle est simple et rapide pour les petits nombres (en fait pour les nombres plus petits que les puissances de deux que vous connaissez par coeur). Vous trouverez en annexe une table avec les puissances de 2 les plus courantes.
|
||||
|
|
@ -155,7 +155,7 @@ Le nombre $53_{|10}$ qui s'écrit $110101_{|2}$ en binaire :
|
|||

|
||||
```
|
||||
|
||||
#### Binaire vers décimal
|
||||
#### 2.3.2 - Binaire vers décimal
|
||||
|
||||
Pour calculer le nombre décimal à partir du nombre binaire, il suffit de prendre la formule de la première partie appliquée à une base 2 : prenez chaque bit à 1 et multipliez-le par son poids.
|
||||
|
||||
|
|
@ -176,7 +176,7 @@ Et donc :
|
|||
$$1\times2^5 + 1\times2^4 + 0\times2^3 + 1\times2^2 + 0\times2^1 + 1\times2^0 = 32 + 16 + 4 + 1 = 53$$
|
||||
```
|
||||
|
||||
## La base 16, système hexadécimal
|
||||
## 3 - La base 16, système hexadécimal
|
||||
|
||||
Le système hexadécimal est également très utilisé :
|
||||
- Les adresses MAC en réseau, ou les adresses IPv6
|
||||
|
|
@ -193,9 +193,9 @@ Sur le même modèle que précédemment, les valeurs des symboles utilisés sont
|
|||
La convention pour écrire des nombres hexadécimaux est de les précéder par `0x` : `0x1CF`.
|
||||
Cette écriture fonctionne en Python, qui interprètera votre valeur comme codée en hexadécimal si vous l'écrivez avec `0x`.
|
||||
|
||||
### Conversions
|
||||
### 3.1 - Conversions
|
||||
|
||||
#### Binaire vers Hexadécimal
|
||||
#### 3.1.1 - Binaire vers Hexadécimal
|
||||
|
||||
Pour convertir un nombre binaire en hexadécimal, c'est plus simple. Un nombre hexadécimal est facile à représenter avec 4 bits ($1111_{|2} = 15_{|10} = \mathrm{F}_{|16}$).
|
||||
|
||||
|
|
@ -233,7 +233,7 @@ $$\overbrace{0011}^{3_{|16}}\overbrace{0101}^{5_{|16}}$$
|
|||
3. Cela nous donne alors $110101_{|2} = 35_{|16}$
|
||||
```
|
||||
|
||||
#### Hexadécimal vers binaire
|
||||
#### 3.1.2 - Hexadécimal vers binaire
|
||||
|
||||
Pour convertir un nombre hexadécimal vers binaire, il faut faire exactement pareil, en remplaçant la représentation hexadécimale du nombre par sa représentation binaire.
|
||||
|
||||
|
|
@ -241,7 +241,7 @@ Pour convertir un nombre hexadécimal vers binaire, il faut faire exactement par
|
|||
$$\mathrm{6B}_{|16} = {\overbrace{0110}^{6_{|16}}\overbrace{1011}^{\mathrm{B}_{|16}}}_{|2}$$
|
||||
```
|
||||
|
||||
#### Hexadécimal vers décimal
|
||||
#### 3.1.3 - Hexadécimal vers décimal
|
||||
|
||||
Pour calculer le nombre décimal à partir du nombre hexadécimal, il suffit de prendre la formule de la première partie appliquée à une base 16 : prenez chaque chiffre et multipliez-le par son poids.
|
||||
|
||||
|
|
@ -263,7 +263,7 @@ Et donc :
|
|||
$$6\times16^1 + 10\times16^0 = 96 + 10 = 106$$
|
||||
```
|
||||
|
||||
#### Décimal vers hexadécimal
|
||||
#### 3.1.4 - Décimal vers hexadécimal
|
||||
##### Base intermédiaire
|
||||
|
||||
Cette méthode consiste à d'abord convertir un nombre en binaire, puis à convertir le nombre binaire en nombre hexadécimal.
|
||||
|
|
@ -294,10 +294,6 @@ Toujours avec le nombre $47_{|10}$
|
|||
On obtient donc $47_{|10} = \mathrm{2F}_{|16}$
|
||||
```
|
||||
|
||||
# Opérations logiques
|
||||
|
||||
TODO
|
||||
|
||||
# Annexes
|
||||
### Tableau des puissances de 2
|
||||
|
||||
|
|
@ -64,3 +64,17 @@
|
|||
- $10011010_{|2}$
|
||||
- $100110101_{|2}$
|
||||
- $111 1001 1100 1011 1101 0001_{|2}$
|
||||
|
||||
12. Donnez le résultat des opérations booléennes suivantes, avec `a = True`, `b = False`
|
||||
- `a and b`
|
||||
- `a or b`
|
||||
- `not (a and b)`
|
||||
- `a and not b`
|
||||
- `b or not b`
|
||||
|
||||
13. Donnez le résultat des opérations bit à bit suivantes, avec $a = 58_{|10}$ et $b = 77_{|10}$ en considérant que $a$ et $b$ sont des octets.
|
||||
- `a | b`
|
||||
- `b & a`
|
||||
- `b ^ a`
|
||||
- `~b | a`
|
||||
- `~(b | a)`
|
||||
Loading…
Add table
Add a link
Reference in a new issue