Compare commits
2 commits
9e02248a5a
...
7ea0ad923c
Author | SHA1 | Date | |
---|---|---|---|
7ea0ad923c | |||
ce388b1126 |
2 changed files with 181 additions and 0 deletions
cours/SIN
111
cours/SIN/04-numeration.md
Normal file
111
cours/SIN/04-numeration.md
Normal file
|
@ -0,0 +1,111 @@
|
|||
---
|
||||
title: Systèmes de numération
|
||||
subject: Cours
|
||||
export:
|
||||
- format: pdf
|
||||
template: courstex
|
||||
---
|
||||
|
||||
# Définition
|
||||
|
||||
:::{prf:definition} Système de numération
|
||||
:nonumber: true
|
||||
Un système de numération est un ensemble de règles qui régissent une, voire plusieurs numérations données. De façon plus explicite, c'est un ensemble de règles d'utilisation des signes, des mots ou des gestes permettant d'écrire, d'énoncer ou de mimer les nombres.
|
||||
|
||||
Source : Article _[Système de numération](https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_num%C3%A9ration)_ de [Wikipédia en français](https://fr.wikipedia.org/) ([auteurs](https://fr.wikipedia.org/w/index.php?title=Syst%C3%A8me_de_num%C3%A9ration&action=history))
|
||||
:::
|
||||
|
||||
# Systèmes de numération usuels
|
||||
|
||||
## Le système décimal (base 10)
|
||||
|
||||
Le système décimal est celui que l'on utilise au quotidien, qui utilise 10 symboles (0 à 9). La valeur des nombres s'obtient ainsi (@tab:num-10) :
|
||||
|
||||
:::{math}
|
||||
1789=1 \times 10^3 + 7 \times 10^2 + 8 \times 10^1 + 9 \times 10^0
|
||||
:::
|
||||
|
||||
:::{csv-table} Système décimal
|
||||
:label: tab:num-10
|
||||
10³,10²,10¹,10⁰
|
||||
1000, 100, 10, 1
|
||||
1,7,8,9
|
||||
:::
|
||||
|
||||
## Le système binaire (base 2)
|
||||
|
||||
Le système binaire est celui utilisé par systèmes électroniques. Il utilise 2 symboles (0 et 1). Chaque chiffre est appelé un bit. Un nombre à 8 bits est appelé octet (ou byte en anglais). La valeur des nombres s'obtient ainsi (@tab:num-2) :
|
||||
|
||||
:::{math}
|
||||
1011_2=1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0
|
||||
:::
|
||||
|
||||
:::{csv-table} Système binaire
|
||||
:label: tab:num-2
|
||||
2³,2²,2¹,2⁰
|
||||
8, 4, 2,1
|
||||
1,0,1,1
|
||||
:::
|
||||
|
||||
### Conversion binaire vers décimal
|
||||
|
||||
Pour convertir un nombre binaire en nombre décimal, utiliser la méthode ci-dessus : chaque bit, lui associer sa valeur, puis faire la somme des bits à 1.
|
||||
|
||||
::::{hint} Exemple : Convertir $1101_2$ en décimal.
|
||||
|
||||
- On associe à chaque bit sa valeur :
|
||||
:::{math}
|
||||
\begin{matrix}
|
||||
2³ & 2² & 2¹ & 2⁰ \\
|
||||
1 & 1 & 0 & 1
|
||||
\end{matrix}
|
||||
:::
|
||||
- On additione la valeur des bits à 1 :
|
||||
:::{math}
|
||||
N = 8+4+1 = 13_{10}
|
||||
:::
|
||||
::::
|
||||
|
||||
### Conversion décimal vers binaire
|
||||
|
||||
La méthode infaillible pour convertir un nombre décimal en nombre binaire est de poser la division par 2, puis réitérer avec le quotient obtenu jusqu'à obtenir 0, puis lire le reste des divisions en sens inverse.
|
||||
|
||||
::::{hint} Exemple : Convertir $25_{10}$ en binaire.
|
||||
|
||||
- On pose la division :
|
||||
- $25\div 2=12\text{, reste }1$
|
||||
- $12\div 2=6\text{, reste }0$
|
||||
- $6\div 2=3\text{, reste }0$
|
||||
- $3\div 2=1\text{, reste }1$
|
||||
- $1\div 2=0\text{, reste }1$
|
||||
- On lit le reste des divisions dans l'ordre inverse : $25_{10}=11001_{2}$.
|
||||
::::
|
||||
|
||||
## Le système hexadécimal (base 16)
|
||||
|
||||
Le système hexadécimal est souvent utiliser pour retranscrire des nombres binaires car la conversion entre les deux systèmes est simple. Il utilise 16 symboles (0 à 9 puis A à F ; A=10, B=11, C=12, D=13, E=14 et F=15). La valeur des chiffres s'obtient ainsi (@tab:num-16) :
|
||||
|
||||
:::{math}
|
||||
6FD_{16}=6\times 16²+15\times 16¹+13\times 16⁰
|
||||
:::
|
||||
|
||||
:::{csv-table} Système hexadécimal
|
||||
:label: tab:num-16
|
||||
16²,16¹,16⁰
|
||||
256,16,1
|
||||
6,F,D
|
||||
:::
|
||||
|
||||
### Conversion entre binaire et hexadécimal
|
||||
|
||||
Pour convertir un nombre binaire en hexadécimal, on peut regrouper les bits en paquets de 4, puis convertir chaque groupe de 4 bits en un chiffre hexadécimal.
|
||||
|
||||
:::{hint} Exemple : Convertir $0110\,1111\,1101_2$ en hexadécimal.
|
||||
|
||||
- On groupe en paquets de 4 bits : $0110_2$, $1111_2$, $1101_2$.
|
||||
- On convertit chaque paquet en un chiffre hexadécimal :
|
||||
- $0110_2=6_{10}=6_{16}$
|
||||
- $1111_2=15_{10}=F_{16}$
|
||||
- $1101_2=13_{10}=D_{16}$
|
||||
- On obtient donc : $0110\,1111\,1101_2=6FD_{16}$.
|
||||
:::
|
70
cours/SIN/05-logique.md
Normal file
70
cours/SIN/05-logique.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
---
|
||||
title: Logique combinatoire
|
||||
subject: Cours
|
||||
export:
|
||||
- format: pdf
|
||||
template: courstex
|
||||
kernelspec:
|
||||
name: python3
|
||||
display_name: Python 3
|
||||
---
|
||||
|
||||
# Vocabulaire
|
||||
:::{prf:definition} Variable logique
|
||||
:nonumber: true
|
||||
Une **variable logique** est une variable qui ne peut prendre que deux valeurs, dites **états logiques** : 0 et 1.
|
||||
:::
|
||||
|
||||
:::{prf:definition} Table de vérité
|
||||
:nonumber: true
|
||||
Une **table de vérité** permet de renseigner les états logiques des sorties du système en fonction de ses entrées (exemple : @tab:verite).
|
||||
:::
|
||||
|
||||
:::{csv-table} Table de vérité
|
||||
:label: tab:verite
|
||||
:header-rows: 1
|
||||
a,b,S
|
||||
0,0,1
|
||||
0,1,0
|
||||
1,0,0
|
||||
1,1,1
|
||||
:::
|
||||
|
||||
:::{prf:definition} Chronogramme
|
||||
:nonumber: true
|
||||
Un **chronogramme** permet de représenter l'évolution des états logiques d'un système en fonction du temps (exemple : @fig:chronogramme).
|
||||
:::
|
||||
|
||||
::::{figure}
|
||||
:label: fig:chronogramme
|
||||
:::{code-cell} python
|
||||
:tag: [remove-input]
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
rng = np.random.default_rng(25)
|
||||
|
||||
fig, [ax_a, ax_b, ax] = plt.subplots(3, figsize=(10, 4), sharex=True, sharey=True)
|
||||
ax.set(xlim=(0, 16), xticks=np.arange(0, 16), ylim=(-0.5, 1.5), yticks=(0, 1))
|
||||
ax.set(xlabel="Temps (s)", ylabel="Signal logique")
|
||||
|
||||
a = rng.integers(2, size=16)
|
||||
b = rng.integers(2, size=16)
|
||||
S = np.equal(a, b)
|
||||
|
||||
ax_a.stairs(a, lw=3, baseline=None)
|
||||
ax_a.set_ylabel("a")
|
||||
|
||||
ax_b.stairs(b, lw=3, baseline=None)
|
||||
ax_b.set_ylabel("b")
|
||||
|
||||
ax.stairs(S, lw=3, baseline=None)
|
||||
ax.set_ylabel("S");
|
||||
:::
|
||||
|
||||
Chronogramme
|
||||
::::
|
||||
|
||||
# Fonctions logiques
|
||||
Une fonction logique donne un résultat en fonction des valeurs d'entrée.
|
||||
Les fonctions logiques usuelles sont ET ($a\cdot{}b$), OU ($a+b$), NON ($\bar a$) et OU exclusif (XOR, $a\oplus{}b$). Les symboles et tables de vérité sont donnés sur la [page Wikipédia des fonctions logiques](https://fr.wikipedia.org/wiki/Fonction_logique#Repr%C3%A9sentation_graphique).
|
Loading…
Add table
Reference in a new issue