diff --git "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8C_Ecrire_un_nombre_entier_relatif.ipynb" "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8C_Ecrire_un_nombre_entier_relatif.ipynb" index dd5851f..666f871 100644 --- "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8C_Ecrire_un_nombre_entier_relatif.ipynb" +++ "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8C_Ecrire_un_nombre_entier_relatif.ipynb" @@ -12,8 +12,8 @@ "La première idée qui pourrait nous venir à l'esprit est, sur un nombre comportant n bits, d'utiliser le premier bit pour représenter le signe et les suivants pour représenter la valeur absolue du nombre à représenter : le bit de signe étant le bit dit \"de poids fort\" (c'est à dire le bit le plus à gauche), ce bit de poids fort serait à 0 dans le cas d'un nombre positif et à 1 dans le cas d'un nombre négatif.\n", "\n", "> __Exemple :__ sur 8 bits, on représenterait...\n", - "- l'entier 5 par 00000101\n", - "- l'entier -5 par 10000101\n", + "> - l'entier 5 par 00000101\n", + "> - l'entier -5 par 10000101\n", "\n", "Il existe un énorme inconvénient à cette méthode : l'existence de deux zéros :\n", "\n", @@ -43,10 +43,10 @@ "Pour retrouver la valeur décimale d'un nombre négatif représenté en binaire, il suffit d'appliquer à nouveau la méthode du complément à deux pour trouver sa valeur absolue. \n", "\n", "> __Exemple :__ quelle est la valeur décimale de 11001011 ?\n", - "- on inverse tous les bits : 00110100\n", - "- on ajoute 1 : 00110101\n", - "- on convertit ce nombre du binaire au décimal : 53\n", - "- la valeur décimale de 11001011 est donc -53 !\n", + "> - on inverse tous les bits : 00110100\n", + "> - on ajoute 1 : 00110101\n", + "> - on convertit ce nombre du binaire au décimal : 53\n", + "> - la valeur décimale de 11001011 est donc -53 !\n", "\n", "### Le complément à deux, appliqué sur un octet\n", "\n", @@ -67,9 +67,9 @@ "C'est cette façon contre-intuitive de stocker les nombres relatifs qui permet une meilleure efficacité de calculs.\n", "\n", "> __Remarques :__ \n", - "- On remarque qu'il est facile de déterminer si une représentation correspond à un entier positif ou un entier négatif : __si le bit de poids fort est à 1, nous avons affaire à un entier négatif__, si le bit de poids fort est à 0, nous avons affaire à un entier positif.\n", - "- On remarque aussi qu'avec 8 bits, nous pouvons coder les entiers relatifs de -128 à 127.\n", - "- Plus généralement, avec n bits nous pouvons coder uniquement des entiers compris entre $-2^{n-1}$ et $(2^{n-1} - 1)$.\n", + "> - On remarque qu'il est facile de déterminer si une représentation correspond à un entier positif ou un entier négatif : __si le bit de poids fort est à 1, nous avons affaire à un entier négatif__, si le bit de poids fort est à 0, nous avons affaire à un entier positif.\n", + "> - On remarque aussi qu'avec 8 bits, nous pouvons coder les entiers relatifs de -128 à 127.\n", + "> - Plus généralement, avec n bits nous pouvons coder uniquement des entiers compris entre $-2^{n-1}$ et $(2^{n-1} - 1)$.\n", "\n", "### Propriété intéressante du complément à deux\n", "\n", @@ -83,7 +83,7 @@ "\n", "Avec cette méthode d'encodage, __les additions en binaire se font donc aussi naturellement qu'avec des nombres décimaux__.\n", "\n", - "> __Remarque :__ même si les additions s'en trouvent facilitées, il faut bien faire attention à ce que la somme reste dans les bornes de notre encodage (ex : [-128, 127] pour un octet). Sinon, on parle de débordement, ce qui est une source classique d'erreur de calcul." + "> __Remarque :__ même si les additions s'en trouvent facilitées, il faut bien faire attention à ce que la somme reste dans les bornes de notre encodage (ex : [-128, 127] pour un octet). Sinon, on parle de __débordement__, ce qui est une source classique d'erreur de calcul." ] }, { @@ -94,23 +94,23 @@ "\n", "### Manipulation de nombres relatifs en binaire\n", "\n", - "1. Déterminer la représentation en binaire sur 8 bits de −19.\n", + "__1. Déterminer la représentation en binaire sur 8 bits de −19.__\n", " - En binaire, on représente 19 sur 8 bits par 00010011\n", " - Après inversion des bits, on obtient 11101100\n", " - Après ajout de 1, on btient la représentation binaire de -19 : 11101101\n", " \n", - "2. Effectuez ensuite l'addition avec la représentation de 19 en binaire.\n", + "__2. Effectuez ensuite l'addition avec la représentation de 19 en binaire.__\n", " - 00010011 + 11101101 = 100000000, soit 00000000 sur 8 bits. 19 - 19 est donc bien égal à 0 !\n", " \n", - "3. Déterminer la représentation en binaire sur 16 bits de −72.\n", + "__3. Déterminer la représentation en binaire sur 16 bits de −72.__\n", " - En binaire, on représente 72 sur 16 bits par 0000000001001000\n", " - Après inversion des bits, on obtient 1111111110110111\n", " - Après ajout de 1, on btient la représentation binaire de -72 : 1111111110111000\n", " \n", - "4. Effectuez ensuite l'addition avec la représentation de 72 en binaire.\n", + "__4. Effectuez ensuite l'addition avec la représentation de 72 en binaire.__\n", " - 0000000001001000 + 1111111110111000 = 10000000000000000, soit 0000000000000000 sur 16 bits. 72 - 72 est donc bien égal à 0 !\n", "\n", - "5. Déterminer la valeur décimale du nombre binaire 10011101 représenté par la méthode du complément à deux.\n", + "__5. Déterminer la valeur décimale du nombre binaire 10011101 représenté par la méthode du complément à deux.__\n", " - on inverse tous les bits : 01100010\n", " - on ajoute 1 : 01100011\n", " - on convertit ce nombre du binaire au décimal : 99\n", @@ -118,9 +118,10 @@ "\n", "### Capacité de stockage en complément à deux\n", "\n", - "1. Sur 8 bits, donner un encadrement des entiers relatifs codables.\n", - " - C'est simplement un rappel car on l'a vu ci-dessus : avec n bits nous pouvons coder uniquement des entiers compris entre $-2^{n-1}$ et $(2^{n-1} - 1)$. Avec 8 bits, on peut donc coder les nombres relatifs de -128 à 127.\n", - "2. Même question sur 9 bits.\n", + "__1. Sur 8 bits, donner un encadrement des entiers relatifs codables.__\n", + " - C'est simplement un rappel car on l'a vu ci-dessus : avec n bits nous pouvons coder uniquement des entiers compris entre $-2^{n-1}$ et $(2^{n-1} - 1)$. Avec 8 bits, on peut donc coder les nombres relatifs de -128 à 127. \n", + "\n", + "__2. Même question sur 9 bits.__\n", " - Avec 9 bits, on peut donc coder les nombres relatifs de -256 à 255." ] }, @@ -148,7 +149,7 @@ "metadata": {}, "source": [ "---\n", - "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](http://creativecommons.org/licenses/by-nc-sa/3.0/fr/)\n", + "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr)\n", "\n", "

David Landry, Lycée Clemenceau - Nantes

\n", "\n", @@ -161,7 +162,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -175,7 +176,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.9" } }, "nbformat": 4, diff --git "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8_Ecrire_un_nombre_entier_relatif.ipynb" "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8_Ecrire_un_nombre_entier_relatif.ipynb" index b5c45c0..8c83605 100644 --- "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8_Ecrire_un_nombre_entier_relatif.ipynb" +++ "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_8_Ecrire_un_nombre_entier_relatif.ipynb" @@ -136,7 +136,7 @@ "metadata": {}, "source": [ "---\n", - "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](http://creativecommons.org/licenses/by-nc-sa/3.0/fr/)\n", + "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr)\n", "\n", "

David Landry, Lycée Clemenceau - Nantes

\n", "\n", @@ -149,7 +149,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -163,7 +163,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.9" } }, "nbformat": 4, diff --git "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9AC_Manipuler_des_nombres_entiers_relatifs.ipynb" "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9AC_Manipuler_des_nombres_entiers_relatifs.ipynb" index 3e82a87..fb7da85 100644 --- "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9AC_Manipuler_des_nombres_entiers_relatifs.ipynb" +++ "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9AC_Manipuler_des_nombres_entiers_relatifs.ipynb" @@ -64,6 +64,7 @@ " while len(nb_binaire) < 8:\n", " nb_binaire.append(0)\n", " nb_binaire.reverse()\n", + " \n", " return nb_binaire\n", " \n", "doctest.testmod()" @@ -113,13 +114,9 @@ " >>> inverse_0_et_1([1, 0, 1, 1, 1, 0, 0, 0])\n", " [0, 1, 0, 0, 0, 1, 1, 1]\n", " '''\n", - " test_OK = True\n", - " for chiffre in liste:\n", - " if chiffre not in [0, 1]:\n", - " test_OK = False\n", - " assert test_OK, \"La liste ne doit contenir que des 0 ou des 1\"\n", - " \n", + "\n", " for i, chiffre in enumerate(liste):\n", + " assert chiffre in (0, 1), \"La liste ne doit contenir que des 0 ou des 1\"\n", " if chiffre == 0:\n", " liste[i] = 1\n", " else:\n", @@ -158,6 +155,7 @@ " '''\n", " retenue = 1 \n", " i = len(liste) - 1\n", + " \n", " while i >= 0 and retenue == 1:\n", " if liste[i] == 0:\n", " liste[i] = 1\n", @@ -165,6 +163,7 @@ " else:\n", " liste[i] = 0\n", " i -= 1\n", + " \n", " return liste\n", "\n", "doctest.testmod()" @@ -309,7 +308,7 @@ "metadata": {}, "source": [ "---\n", - "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](http://creativecommons.org/licenses/by-nc-sa/3.0/fr/)\n", + "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr)\n", "\n", "

David Landry, Lycée Clemenceau - Nantes

\n", "\n", @@ -322,7 +321,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -336,7 +335,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.9" } }, "nbformat": 4, diff --git "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9A_Manipuler_des_nombres_entiers_relatifs.ipynb" "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9A_Manipuler_des_nombres_entiers_relatifs.ipynb" index 4d4bd51..bfa5d67 100644 --- "a/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9A_Manipuler_des_nombres_entiers_relatifs.ipynb" +++ "b/1 - Repr\303\251sentation des donn\303\251es - Types et valeurs de base/NSI_1_9A_Manipuler_des_nombres_entiers_relatifs.ipynb" @@ -243,7 +243,7 @@ "metadata": {}, "source": [ "---\n", - "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](http://creativecommons.org/licenses/by-nc-sa/3.0/fr/)\n", + "[![Licence CC BY NC SA](https://licensebuttons.net/l/by-nc-sa/3.0/88x31.png \"licence Creative Commons CC BY-NC-SA\")](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.fr)\n", "\n", "

David Landry, Lycée Clemenceau - Nantes

\n", "\n", @@ -256,7 +256,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -270,7 +270,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.3" + "version": "3.10.9" } }, "nbformat": 4,