diff --git a/slides/cours_4.md b/slides/cours_4.md index d1300137396fd53962462d944d54e193b00f12eb..7025c978736d5b76c876e85babf25067d702472b 100644 --- a/slides/cours_4.md +++ b/slides/cours_4.md @@ -343,11 +343,46 @@ Que donne l'addition `1101` avec `0110`? . . . -## Dépassement de capacité: le nombre est tronqué +## Dépassement de capacité: le nombre est "tronqué" * `10011 (19) -> 0011 (3)`. * On fait "le tour"." +# Entier non-signés minimal/maximal + +* Quel est l'entier non-signé maximal représentable avec 4 bit? + +. . . + +$$ +(1111)_2 = 8+4+2+1 = 15 +$$ + +* Quel est l'entier non-signé minimal représentable avec 4 bit? + +. . . + +$$ +(0000)_2 = 0+0+0+0 = 0 +$$ + +* Quel est l'entier non-signé min/max représentable avec N bit? + +. . . + +$$ +0\mbox{ et }2^N-1. +$$ + +* Donc `uint32_t?` maximal est? + +. . . + +$$ +4294967295 +$$ + + # Les multiplications en binaire (1/2) Que donne la multiplication de `1101` avec `0110`? @@ -394,8 +429,9 @@ Que donne la multiplication de `1101` avec `0110`? # Entiers signés (1/N) +* La représentation qu'on vient de voir -<!-- # TODO --> +<!-- # TODO -- <!-- ## Entiers, entiers non-signés --> @@ -407,7 +443,6 @@ Que donne la multiplication de `1101` avec `0110`? ## Fractions -* Plusieurs variables qu'on aimerait regrouper dans un seul type: `struct`{.C}. * Numérateur: `int num`; * Dénominateur: `int denom`. @@ -426,6 +461,8 @@ int denom3 = denom1 * denom2; ## On peut faire mieux +* Plusieurs variables qu'on aimerait regrouper dans un seul type: `struct`{.C}. + ```C struct fraction { // déclaration du type int32_t num, denom;