From cac7f3e868e98281f9f2b841101b09f02cf664fd Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Sat, 13 Sep 2025 00:53:47 +0200 Subject: Ajout du scripts bin_to_hex --- README.md | 11 ++++--- .../1- Repr\303\251sentation de l'information.md" | 18 ++-------- .../scripts/bin_to_hex.exs | 38 ++++++++++++++++++++++ .../1- Ensembles, relations, fonctions.md" | 2 +- 4 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 semestre 3/architecture des ordinateurs/scripts/bin_to_hex.exs diff --git a/README.md b/README.md index e0c9ae4..64e1159 100644 --- a/README.md +++ b/README.md @@ -2,22 +2,23 @@ Dans ce repository, vous trouvez tous mes cours à [Sorbonne Université](https://sorbonne-universite.fr). -Je suis en double licence Sciences - Philosophie avec une spécialisation en informatique. +Je suis en double licence Informatique - Philosophie. +J'ai suivi des cours de physique au premier semestre et de mathématiques généralistes au premier +et deuxième semestre. Le contenu est censuré pour éviter d'envoyer des données personnelles sur internet sans le consentement des intéressés. Si vous trouvez une information sensible, n'hésitez pas à m'envoyer -[un mail](mailto:me@anhgelus.world). +[un mail](mailto:william@herges.fr). ## Organisation Chaque semestre possède son propre dossier contenant toutes les UE. Chaque UE possède son propre dossier. Les fichiers markdown (`.md`) ont été écris avec Obsidian. -Les fichiers $\LaTeX$ (`.tex`) ont été écris avec NeoVim. -Les fichiers C (`.c`) ont été écris avec Vim. +Les autres fichiers ont été écrits avec NeoVim ou avec un IDE Jetbrains. ## Licence Ce repository est sous licence CC BY-NC-SA 4.0. Aucun fichier ne m'appartenant pas n'a été publié. Si vous pensez qu'un fichier vous appartenant est disponible, contactez moi -[par mail](mailto:me@anhgelus.world). +[par mail](mailto:william@herges.fr). diff --git "a/semestre 3/architecture des ordinateurs/1- Repr\303\251sentation de l'information.md" "b/semestre 3/architecture des ordinateurs/1- Repr\303\251sentation de l'information.md" index 9545578..ee2a51c 100644 --- "a/semestre 3/architecture des ordinateurs/1- Repr\303\251sentation de l'information.md" +++ "b/semestre 3/architecture des ordinateurs/1- Repr\303\251sentation de l'information.md" @@ -240,21 +240,7 @@ def bin_to_hex(b): return hex ``` -```elixir -def bin_to_hex(b) do - bin_to_hex_rec(b, []) -end - -defp bin_to_hex_rec(before, after) when before != "" do - {b, a} = String.split_at(before, -4) - #TODO: convert algo - bin_to_hex_rec(b, [a | after]) -end - -defp bin_to_hex_rec("", after) do - after -end -``` +Voir le dossier `scripts` pour la version elixir. Pour réaliser une addition en binaire, on a besoin que les deux mots fassent la même taille @@ -290,4 +276,4 @@ $$ = \mathrm{0b}1\ldots1 = -1 $$ Donc, on a que $\bar N$ doit être décalé de 1, d'où le plus 1 |> cela est dû au fait que l'intervalle ne soit pas symétrique -Voir le moodle pour la suite \ No newline at end of file +Voir le moodle pour la suite diff --git a/semestre 3/architecture des ordinateurs/scripts/bin_to_hex.exs b/semestre 3/architecture des ordinateurs/scripts/bin_to_hex.exs new file mode 100644 index 0000000..8d6e629 --- /dev/null +++ b/semestre 3/architecture des ordinateurs/scripts/bin_to_hex.exs @@ -0,0 +1,38 @@ +defmodule Conv do + def bin_to_hex(b) do + bin_to_hex_rec(b, []) + end + + defp bin_to_hex_rec(before, aft) when before != "" do + {b, a} = String.split_at(before, -4) + s = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"] + bin_to_hex_rec(b, [Enum.at(s, bin_to_dec(a)) | aft]) + end + + defp bin_to_hex_rec("", aft) do + aft + end + + def bin_to_dec(b) do + bin_to_dec_rec(b, 0, 0) + end + + defp bin_to_dec_rec(before, aft, i) when before != "" do + {b, a} = String.split_at(before, -1) + bin_to_dec_rec(b, case a do + "0" -> aft + "1" -> aft + Integer.pow(2, i) + end, i + 1) + end + + defp bin_to_dec_rec("", aft, _i) do + aft + end +end + +Conv.bin_to_hex("1111") +|> IO.puts() # must print f + +Conv.bin_to_hex("11101011") +|> IO.puts() # must print EB + diff --git "a/semestre 3/math\303\251matiques discr\303\250tes/1- Ensembles, relations, fonctions.md" "b/semestre 3/math\303\251matiques discr\303\250tes/1- Ensembles, relations, fonctions.md" index 8baee50..b0066aa 100644 --- "a/semestre 3/math\303\251matiques discr\303\250tes/1- Ensembles, relations, fonctions.md" +++ "b/semestre 3/math\303\251matiques discr\303\250tes/1- Ensembles, relations, fonctions.md" @@ -117,7 +117,7 @@ Si $E$ est un ensemble fini contenant $n$ éléments, alors $|\mathcal{P}(E)|=2^ **Définition** Soit $E$ un ensemble. -Quand on partitionne $E$, on construit des parties deux à deux disjointes. +Quand on partitionne $E$, on construit des parties non vides deux à deux disjointes. Une partition de $E$ est une famille $(A_i)_{i\in I}$ de parties de $E$ telle que : - $A_i\neq\varnothing$ -- cgit v1.2.3