Comptez les variables distinctes : la table de vérité a 2ⁿ lignes, la première avec toutes les variables à 1.
Donnez à chaque sous-formule sa propre colonne et remplissez les colonnes de l’intérieur vers l’extérieur.
Appliquez la règle de chaque connecteur : → n’est 0 que pour 1 → 0, ↔ vaut 1 quand les deux côtés sont égaux.
Pour des équivalences, comparez les colonnes finales ligne par ligne ; pour un raisonnement, regardez seulement les lignes où toutes les prémisses valent 1.
Pour nier un énoncé quantifié, faites passer ¬ vers l’intérieur, échangez ∀ et ∃, et niez la formule intérieure.
Logique numérique : portes, tableaux de Karnaugh et bascules
Portes de base
A·B, A + B, A′, (A·B)′, (A + B)′, A ⊕ B
Règles booléennes
X + X′ = 1, X·X′ = 0, X + XY = X, XY + XY′ = X
De Morgan
(X·Y)′ = X′ + Y′, (X + Y)′ = X′·Y′
Ordre du tableau de Karnaugh
00, 01, 11, 10 (Gray code)
Groupe de 2ᵏ cases
perd k variables
Multiplexeur 4 vers 1
F = A′B′I0 + A′BI1 + AB′I2 + ABI3
Bascules
D: Q⁺ = D, T: Q⁺ = T ⊕ Q, JK: Q⁺ = JQ′ + K′Q
Compteurs
n bits : 2ⁿ états ; modulo N : plus petit n tel que 2ⁿ ≥ N ; fout = fclk/N
Compteur asynchrone
fmax = 1/(n·tpd)
Compteurs en anneau et Johnson
n et 2n états
Méthode
Pour un circuit, travaillez des entrées vers la sortie, une porte à la fois, et écrivez la valeur sur chaque fil, ou écrivez son expression et remplissez la table de vérité.
Pour la simplification, placez les 1 (et les états indifférents sous forme de X) dans un tableau de Karnaugh dont les lignes et colonnes suivent le code de Gray : 00, 01, 11, 10.
Couvrez les 1 avec le moins possible de groupes de 1, 2, 4, 8 ou 16 cases, aussi grands que possible, en débordant sur les bords ; chaque groupe est un terme produit formé des variables qui restent constantes. Regroupez les 0 pour la forme POS.
Pour les bascules et les compteurs, lisez les entrées à chaque front d’horloge actif, notez l’état après chaque front, et rappelez-vous qu’un compteur de n bits repasse à zéro après 2ⁿ états.
Théorie des nombres et arithmétique modulaire
Division avec reste
a = q·n + r, 0 ≤ r < n
Euclide
gcd(a, b) = gcd(b, a mod b)
Plus petit commun multiple
lcm(a, b) = a·b/gcd(a, b)
Inverse
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Congruence linéaire
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Indicatrice d’Euler
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Fermat
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n
Méthode
Réduisez d’abord chaque nombre modulo n ; les restes sont compris entre 0 et n − 1.
Pour un pgcd, divisez plusieurs fois avec l’algorithme d’Euclide ; le dernier reste non nul est le pgcd.
Pour un inverse, appliquez l’algorithme étendu et gardez le coefficient de a ; ajoutez n s’il est négatif.
Résolvez a·x ≡ b en multipliant par a⁻¹ ; combinez deux congruences en écrivant x = r₁ + m₁k.
Pour les puissances, écrivez l’exposant en binaire et élevez au carré à répétition ; en RSA, d = e⁻¹ mod φ(n) avec φ(n) = (p − 1)(q − 1).
Théorie des graphes
Lemme des poignées de main
Σ deg(v) = 2|E|
Graphes complets
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Graphe régulier
|E| = n·k/2
Arbre et forêt
|E| = n − 1, |E| = n − c
Feuilles d’un arbre
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Euler
circuit : tous les degrés pairs ; chemin : exactement 2 degrés impairs
Circuits hamiltoniens dans Kn
(n − 1)!/2
Mise à jour de Dijkstra
d(v) = min(d(v), d(u) + w(u, v))
Marches de longueur L
(Mᴸ)ij
Méthode
Notez le degré de chaque sommet ; la somme des degrés vaut deux fois le nombre d’arêtes.
Pour les questions d’Euler, vérifiez que le graphe est connexe et comptez les sommets de degré impair.
Pour les arbres, utilisez n − 1 arêtes et le lemme des poignées de main.
Pour Dijkstra, tenez un tableau des distances provisoires et fixez à chaque tour le sommet non fixé de plus petite distance.
Pour un arbre couvrant minimal, triez les arêtes par poids et sautez toute arête qui ferme un cycle (Kruskal), ou faites croître un arbre à partir d’un sommet de départ (Prim).
Sous-réseaux IPv4
Hôtes par sous-réseau
2(32 − prefix) − 2 (/31: 2, /32: 1)
Taille de bloc
256 − (mask octet)
Adresse réseau
IP AND masque
Adresse de diffusion
IP OR (NOT masque) : tous les bits d’hôte à 1
Sous-réseaux avec n bits empruntés
2n
2Exercices
1.Systèmes de numérationMoyen
Positionnez les bits pour qu’ils représentent −118 en complément à deux sur 8 bits. Lu comme un nombre non signé, quelle est la valeur U du motif ?
N = −1188 bit
U =
2.Systèmes de numérationDifficile
Une image non compressée fait 800 × 600 pixels avec 16 bits par pixel. Quelle mémoire M occupe-t-elle, en Kio (1 Kio = 1024 octets) ?
800 × 600 px16 bit/px1 KiB = 1024 B
M = KiB
3.Logique propositionnelle et preuvesMoyen
Quelle formule est logiquement équivalente à a ∧ (c ∨ b) ? Cliquez dessus.
a ∧ (c ∨ b)
1(a ∧ c) ∨ (a ∧ b)
2(a ∨ c) ∧ (a ∨ b)
3(a ∧ c) ∨ b
4a ∨ (c ∧ b)
4.Logique propositionnelle et preuvesDifficile
Les prémisses q ∨ p; ¬q sont données. Quelle conclusion en découle ? Cliquez dessus.
q ∨ p¬q
1p
2q
3¬p
4q ∧ p
5.Logique numérique : portes, tableaux de Karnaugh et basculesMoyen
Un multiplexeur 4 vers 1 a ses entrées de sélection S₁ = A et S₀ = B, et ses entrées de données reliées à I₀ = C′, I₁ = 1, I₂ = C′, I₃ = 0. Pour combien des 8 combinaisons de A, B et C la sortie vaut-elle F = 1 ? Trouvez N.
I₀ = C′I₁ = 1I₂ = C′I₃ = 0
N =
6.Logique numérique : portes, tableaux de Karnaugh et basculesDifficile
Un compteur Johnson de 4 bits Q₃Q₂Q₁Q₀ part de 0000. À chaque front d’horloge, les bits se décalent d’une place vers la droite (Q₃ → Q₂ → Q₁ → Q₀) et Q₃ reçoit l’inverse de Q₀. Donnez l’état Q = Q₃Q₂Q₁Q₀ sous forme de nombre décimal après 10 fronts d’horloge.
Q₃Q₂Q₁Q₀ = 000010
Q =
7.Théorie des nombres et arithmétique modulaireMoyen
Trouvez l’inverse de 17 modulo 31 : le nombre x avec 0 < x < 31 et 17·x ≡ 1 (mod 31).
a = 17n = 31
17−1 mod 31 =
8.Théorie des nombres et arithmétique modulaireDifficile
Utilisez le carré répété pour trouver 75173 mod 92.
a = 75k = 173n = 92
75173 mod 92 =
9.Algorithmes et complexitéMoyen
Quel algorithme de tri est stable ?
ATri par tas
BTri fusion
CTri rapide (version en place habituelle)
DTri par sélection (version habituelle)
10.Algorithmes et complexitéDifficile
D'après le théorème maître, T(n) = 8T(n/2) + O(n²) a pour solution :
AΘ(n² log n)
BΘ(n log n)
CΘ(n³)
DΘ(n²)
11.Structures de donnéesMoyen
Combien de nœuds possède un arbre binaire parfait de hauteur h, la hauteur étant comptée en arêtes ?
A2h
Bh2
C2h + 1
D2h+1 − 1
12.Structures de donnéesDifficile
Pourquoi ne peut-on pas simplement supprimer des éléments d'un filtre de Bloom standard en remettant leurs bits à zéro ?
ACes bits peuvent aussi appartenir à d'autres éléments, ce qui provoquerait des faux négatifs
BLes bits d'un filtre de Bloom ne peuvent pas être modifiés après sa création
CLes filtres de Bloom stockent les éléments complets, qui sont introuvables une fois hachés
DLa suppression porterait le taux de faux positifs à 100%
13.Théorie des graphesMoyen
Un arbre a 3 sommets de degré 3, 4 sommets de degré 2, et tous ses autres sommets sont des feuilles (degré 1). Combien de feuilles L a-t-il ?
3 × deg 34 × deg 2
L =
14.Théorie des graphesDifficile
Utilisez l’algorithme de Dijkstra pour trouver la longueur d(E) du plus court chemin de A à E dans le graphe pondéré.
départ : Aarrivée : E
d(E) =
15.Bases de données et SQLMoyen
Une colonne contient les valeurs 10, 20 et NULL. Que renvoie AVG(col) ?
ANULL
B15
C30
D10
16.Bases de données et SQLDifficile
Que renvoie SELECT name, dept, AVG(salary) OVER (PARTITION BY dept) FROM emp ?
AUne ligne par service avec son salaire moyen
BUne erreur, car name ne figure pas dans un GROUP BY
CUniquement les employés qui gagnent plus que la moyenne de leur service
DChaque ligne d'employé accompagnée du salaire moyen de son service
17.Réseaux informatiquesMoyen
Un signal parcourt 2000 km dans une fibre à environ 2 × 10⁸ m/s. Quel est le délai de propagation ?
A10 ms
B100 ms
C0,1 ms
D1 ms
18.Réseaux informatiquesDifficile
La clé privée d'un serveur sera volée dans un an. Quelle propriété de TLS protège les sessions enregistrées aujourd'hui ?
AL'utilisation d'un nom de domaine plus long
BLa confidentialité persistante (forward secrecy) grâce à l'échange de clés Diffie-Hellman éphémère
CLa compression des données avant chiffrement
DL'envoi du certificat deux fois
19.Sous-réseaux IPv4Moyen
Le réseau 192.168.114.0/24 est divisé en sous-réseaux /26, numérotés 1, 2, 3, … à partir de l’adresse la plus basse (le sous-réseau 1 commence à .0). Quel est le quatrième octet x de l’adresse de diffusion du sous-réseau 3 ?
192.168.114.0/24/26sous-réseau 3 (le sous-réseau 1 commence à .0)
x =
20.Sous-réseaux IPv4Difficile
Un hôte a l’adresse 172.20.182.47/23. Quel est le troisième octet x de son adresse réseau ?
172.20.182.47/23
x =
3Solutions
1.Systèmes de numération
Réponse: U = 138
Positionner les bits : chaque bit vaut une puissance de deux (128, 64, …, 1). Un chiffre hexadécimal correspond exactement à quatre bits, et en complément à deux sur 8 bits, le bit le plus à gauche vaut −128. Les opérations bit à bit s’appliquent séparément à chaque position de bit.
Inverser et ajouter un
118 = 0111 0110
inversé: 1000 1001
+1 → 1000 1010
Le lire en non signé
1000 1010₂ = 256 − 118 = 138
Réponse
U = 138
2.Systèmes de numération
Réponse: M = 937,5 KiB
Systèmes de numération positionnels : chaque chiffre vaut sa valeur multipliée par une puissance de la base. En binaire les positions valent 1, 2, 4, 8, 16, … ; en hexadécimal 1, 16, 256, …, avec A–F pour 10–15. En complément à deux sur 8 bits, le bit de gauche vaut −128 au lieu de +128 : c'est ainsi qu'on stocke les nombres négatifs.
Bits et octets
800·600·16 = 7680000 bit = 960000 B
Convertir en Kio
960000/1024 = 937,5 KiB
Réponse
M = 937,5 KiB
3.Logique propositionnelle et preuves
Réponse: (a ∧ c) ∨ (a ∧ b)
Équivalence logique : deux formules sont équivalentes (≡) quand elles ont la même valeur dans chaque ligne de la table de vérité. Une tautologie vaut 1 dans toutes les lignes, une contradiction 0 dans toutes les lignes, et une contingence n’est ni l’une ni l’autre. Lois utiles : De Morgan, ¬(a ∧ b) ≡ ¬a ∨ ¬b et ¬(a ∨ b) ≡ ¬a ∧ ¬b ; a → b ≡ ¬a ∨ b ≡ ¬b → ¬a (contraposée) ; ¬(a → b) ≡ a ∧ ¬b ; et les lois de distributivité, a ∨ (b ∧ c) ≡ (a ∨ b) ∧ (a ∨ c).
La loi
∧ se distribue sur ∨ : a ∧ (b ∨ c) ≡ (a ∧ b) ∨ (a ∧ c).
a ∧ (c ∨ b) ≡ (a ∧ c) ∨ (a ∧ b)
Vérifier avec la table de vérité
a = 1, b = 1, c = 1: 1 | 1 1 1 1
a = 1, b = 1, c = 0: 1 | 1 1 1 1
a = 1, b = 0, c = 1: 1 | 1 1 1 1
a = 1, b = 0, c = 0: 0 | 0 1 0 1
a = 0, b = 1, c = 1: 0 | 0 1 1 1
a = 0, b = 1, c = 0: 0 | 0 0 1 0
a = 0, b = 0, c = 1: 0 | 0 0 0 0
a = 0, b = 0, c = 0: 0 | 0 0 0 0
Réponse
(a ∧ c) ∨ (a ∧ b)
Les colonnes après la barre sont les options dans l’ordre affiché.
4.Logique propositionnelle et preuves
Réponse: p
Quantificateurs et raisonnements : ¬∀x P(x) ≡ ∃x ¬P(x) et ¬∃x P(x) ≡ ∀x ¬P(x). Faites passer une négation vers l’intérieur, échangez chaque quantificateur qu’elle traverse, et niez la formule intérieure avec les lois propositionnelles, comme ¬(a → b) ≡ a ∧ ¬b. Un raisonnement est valide quand la conclusion vaut 1 dans toutes les lignes où toutes les prémisses valent 1. Une seule ligne avec des prémisses vraies et une conclusion fausse est un contre-exemple et montre que le raisonnement est invalide.
Lignes où toutes les prémisses sont vraies
p = 1, q = 0: p = 1, q = 0, ¬p = 0, q ∧ p = 0
Conclusion
p (syllogisme disjonctif)
Réponse
p
5.Logique numérique : portes, tableaux de Karnaugh et bascules
Réponse: N = 4
Multiplexeur : un multiplexeur 2ⁿ vers 1 transmet l’une de ses entrées de données à la sortie ; les lignes de sélection, lues comme un nombre binaire, choisissent laquelle. Pour un MUX 4 vers 1 avec sélections S₁S₀ = AB, F = A′B′·I₀ + A′B·I₁ + AB′·I₂ + AB·I₃. En reliant les entrées de données à 0, 1, C ou C′, le MUX produit n’importe quelle fonction de A, B et C, ce qui est une manière courante de réaliser une logique avec un seul circuit.
Expression de sortie
F = A′B′C′ + A′B + AB′C′
Lignes avec F = 1
ABC = 000, 010, 011, 100
N = 4
Réponse
N = 4
6.Logique numérique : portes, tableaux de Karnaugh et bascules
Réponse: Q = 12
Bascules et compteurs : une bascule ne change qu’au front actif de l’horloge. D copie son entrée (Q⁺ = D) ; T change d’état quand T = 1 ; JK conserve pour 00, remet à 0 pour 01, met à 1 pour 10 et change d’état pour 11. Un compteur binaire de n bits a 2ⁿ états et compte modulo 2ⁿ ; un compteur modulo N va de 0, 1, …, N − 1 puis revient à 0, et exige le plus petit n tel que 2ⁿ ≥ N bascules. Chaque étage d’un compteur asynchrone divise la fréquence par deux, donc la dernière sortie d’un compteur modulo N tourne à fclk/N. Un compteur Johnson de n bascules a 2n états, un compteur en anneau n.
Inverses et congruences : a a un inverse modulo n exactement quand pgcd(a, n) = 1. L’algorithme d’Euclide étendu écrit 1 = s·n + t·a, et alors a⁻¹ ≡ t (mod n). Une congruence a·x ≡ b (mod n) avec pgcd(a, n) = 1 a pour solution x ≡ a⁻¹·b. Deux congruences x ≡ r₁ (mod m₁) et x ≡ r₂ (mod m₂) à modules premiers entre eux ont une solution modulo m₁·m₂ (théorème des restes chinois). L’indicatrice d’Euler φ(n) compte les nombres de 1 à n premiers avec n : φ(n) = n·∏(1 − 1/p).
Algorithme d’Euclide étendu
Chaque reste r s’écrit r ≡ t·17 (mod 31).
r = 31, t = 0
r = 17, q = 1, t = 1
r = 14, q = 1, t = −1
r = 3, q = 4, t = 2
r = 2, q = 1, t = −9
r = 1, q = 2, t = 11
Inverse
1 ≡ 11·17 (mod 31)
x = 11
vérification: 17·11 = 187 = 6·31 + 1
Réponse
17−1 mod 31 = 11
8.Théorie des nombres et arithmétique modulaire
Réponse: 75173 mod 92 = 87
Puissances modulaires et RSA : calculez aᵏ mod n par carrés répétés : écrivez k en binaire, élevez au carré, réduisez après chaque étape et multipliez les puissances dont le bit vaut 1. Fermat : aᵖ⁻¹ ≡ 1 (mod p) pour un nombre premier p ne divisant pas a, donc l’exposant peut être réduit modulo p − 1. RSA : choisissez des nombres premiers p et q, n = p·q et φ(n) = (p − 1)(q − 1) ; l’exposant public e est premier avec φ(n), et l’exposant privé est d = e⁻¹ mod φ(n). Chiffre avec c = mᵉ mod n et déchiffrez avec m = cᵈ mod n.
Exposant binaire
173 = 101011012 = 128 + 32 + 8 + 4 + 1
Carré répété
751 ≡ 75 (mod 92)
752 ≡ 13 (mod 92)
754 ≡ 77 (mod 92)
758 ≡ 41 (mod 92)
7516 ≡ 25 (mod 92)
7532 ≡ 73 (mod 92)
7564 ≡ 85 (mod 92)
75128 ≡ 49 (mod 92)
Multiplier les puissances nécessaires
75173 ≡ 75·77·41·73·49 ≡ 87 (mod 92)
Réponse
75173 mod 92 = 87
9.Algorithmes et complexité
Réponse: B · Tri fusion
Pourquoi c'est la réponse
Le tri fusion est stable si, en cas d'égalité, la fusion prend d'abord dans la moitié gauche. Le tri rapide en place, le tri par tas et le tri par sélection ne sont généralement pas stables.
Réponse
B · Tri fusion
10.Algorithmes et complexité
Réponse: C · Θ(n³)
Pourquoi c'est la réponse
log₂ 8 = 3, et n² croît plus lentement que n³, donc les feuilles dominent : Θ(n³).
Réponse
C · Θ(n³)
11.Structures de données
Réponse: D · 2h+1 − 1
Pourquoi c'est la réponse
La somme 1 + 2 + 4 + ... + 2h vaut 2h+1 − 1 ; par exemple, une hauteur de 2 donne 7 nœuds.
Réponse
D · 2h+1 − 1
12.Structures de données
Réponse: A · Ces bits peuvent aussi appartenir à d'autres éléments, ce qui provoquerait des faux négatifs
Pourquoi c'est la réponse
Remettre à zéro un bit partagé ferait paraître absent un autre élément ; les filtres de Bloom à compteurs utilisent des compteurs au lieu de bits pour permettre la suppression.
Réponse
A · Ces bits peuvent aussi appartenir à d'autres éléments, ce qui provoquerait des faux négatifs
13.Théorie des graphes
Réponse: L = 5
Euler, Hamilton et arbres : un graphe connexe a un circuit eulérien (chaque arête une fois, retour au départ) quand tous les sommets ont un degré pair, et un chemin eulérien qui n’est pas un circuit quand exactement deux sommets ont un degré impair ; le chemin va alors d’un sommet impair à l’autre. Un circuit hamiltonien visite chaque sommet une fois ; Kn en a (n − 1)!/2. Un arbre à n sommets a n − 1 arêtes, et un graphe connexe à m arêtes conserve un arbre couvrant après suppression de m − n + 1 arêtes.
Lemme des poignées de main pour un arbre
L + 17 = 2(L + 7) − 2
L = 5
Réponse
L = 5
Raccourci : L = 2 + Σ (d − 2) sur les sommets de degré d ≥ 3.
14.Théorie des graphes
Réponse: d(E) = 23
Plus courts chemins et arbres couvrants : l’algorithme de Dijkstra fixe un sommet par tour : le sommet non fixé de plus petite distance provisoire. Sa distance est alors définitive, et chaque voisin v reçoit d(v) = min(d(v), d(u) + w(u, v)). L’algorithme de Kruskal construit un arbre couvrant minimal en prenant les arêtes de la plus légère à la plus lourde et en sautant toute arête qui fermerait un cycle ; l’algorithme de Prim fait croître un arbre à partir d’un sommet de départ en ajoutant toujours l’arête la plus légère qui en sort. Un arbre couvrant à n sommets a n − 1 arêtes.
Dijkstra tour par tour
Chaque ligne : le sommet fixé, sa distance définitive, et les voisins dont la distance s’améliore.
A (0): B: 13, C: 9
C (9): E: 23, G: 19
B (13): D: 28, G: 14
G (14): D: 16
D (16)
E (23): F: 33
F (33)
Plus court chemin
A → C → E
d(E) = 23
Réponse
d(E) = 23
15.Bases de données et SQL
Réponse: B · 15
Pourquoi c'est la réponse
AVG ignore NULL : il fait la moyenne de 10 et 20 et obtient 15, et non 30 / 3 = 10.
Réponse
B · 15
16.Bases de données et SQL
Réponse: D · Chaque ligne d'employé accompagnée du salaire moyen de son service
Pourquoi c'est la réponse
Contrairement à GROUP BY, une fonction de fenêtrage conserve chaque ligne d'entrée et y ajoute une valeur calculée sur sa partition, ici le service.
Réponse
D · Chaque ligne d'employé accompagnée du salaire moyen de son service
17.Réseaux informatiques
Réponse: A · 10 ms
Pourquoi c'est la réponse
2 × 10⁶ m / 2 × 10⁸ m/s = 0,01 s = 10 ms. Le délai de propagation dépend de la distance et du support, pas de la taille du paquet.
Réponse
A · 10 ms
18.Réseaux informatiques
Réponse: B · La confidentialité persistante (forward secrecy) grâce à l'échange de clés Diffie-Hellman éphémère
Pourquoi c'est la réponse
Avec (EC)DHE éphémère, chaque clé de session est dérivée de valeurs temporaires qui sont ensuite effacées. La clé à long terme ne fait que signer l'échange ; la voler plus tard ne permet donc pas de déchiffrer l'ancien trafic.
Réponse
B · La confidentialité persistante (forward secrecy) grâce à l'échange de clés Diffie-Hellman éphémère
19.Sous-réseaux IPv4
Réponse: x = 191
IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).
Taille de bloc
26 = 64
Sous-réseau numéro 3
réseau: (3 − 1)·64 = 128
diffusion: 128 + 64 − 1 = 191
Réponse
x = 191
20.Sous-réseaux IPv4
Réponse: x = 182
IPv4 subnetting: an address has 32 bits. The prefix /p says how many leading bits identify the network; the remaining 32 − p bits number the hosts. A subnet has 2³²⁻ᵖ addresses, but the first (network address) and last (broadcast address) cannot be given to hosts, so 2³²⁻ᵖ − 2 hosts fit. Exceptions: a /31 (point-to-point link, RFC 3021) uses both of its 2 addresses for hosts, and a /32 is one single address (a single host or a loopback).