From d7c69934248f3fab4988c0d37c11feba25d653b8 Mon Sep 17 00:00:00 2001 From: Anhgelus Morhtuuzh Date: Fri, 31 Jan 2025 15:39:30 +0100 Subject: =?UTF-8?q?Ajout=20du=20d=C3=A9but=20du=20deuxi=C3=A8me=20semestre?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2- Code binaire, m\303\251moire, pointeurs.md" | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 "semestre 2/informatique/2- Code binaire, m\303\251moire, pointeurs.md" (limited to 'semestre 2/informatique/2- Code binaire, mémoire, pointeurs.md') diff --git "a/semestre 2/informatique/2- Code binaire, m\303\251moire, pointeurs.md" "b/semestre 2/informatique/2- Code binaire, m\303\251moire, pointeurs.md" new file mode 100644 index 0000000..fa8979c --- /dev/null +++ "b/semestre 2/informatique/2- Code binaire, m\303\251moire, pointeurs.md" @@ -0,0 +1,68 @@ +--- +tags: + - sorbonne + - informatique +semestre: 2 +--- +## Architecture de von Neumann +Ordinateur est composé d'un processeur, d'une mémoire et de périphériques +![[computer_architecture_simplified.png]] +![[computer_architecture_detailled.png]] + +Registres = mémoire interne au CPU + +Unité de base = octet (8 bits) + +**Organisation de la mémoire :** +![[ram_organisation_schema.png]] + +Les tensions électriques pour la valeur binaire 1 = 5 V ou 3.3 V ou 1.65 V +|> compliqué de descendre plus bas que 1 V à cause de la tension de seuil du silicium +Les tensions électriques pour la valeur binaire 0 = 0 V + +On peut ensuite calculer des choses : +|> $1010 \land 0011 = 0010$ (bool) +|> $1010 + 0010 = 1100$ (binaire) + +Souvent, on représente la mémoire avec un tableau de 4 colonnes avançant de 4 en 4 + +Pour représenter les floatants, on les décompose en 3 parties : +- signe +- mantisse +- exposant + +Après on peut les approximer à l'aide des sommes d'inverses de 2 ($\frac{1}{2}+\frac{1}{4}+\cdots$) +Exemple sur $-50.5$ : +- $2^5+2^4+2^1+2^{-1}$ +- $(2^0+2^{-1}+2^{-4}+2^{-6})\times 2^{5}$ +- la somme est la mantisse et la multiplication est l'exposant + +Chaque octet a une adresse unique ! +## Portée des variables +Globale = disponible partout dans le fichier +Paramètre = disponible dans toute la fonction +Locale = disponible dans le bloc + +Le shadowing existe en C +## Pointeurs +On peut mettre une valeur et une adresse en mémoire +|> valeur est une valeur classique +|> une adresse est une zone de la mémoire contenant une valeur + +Une variable qui contient une adresse est un pointeur +```c +int *n; +``` + +ici, `n` contient l'adresse vers un entier + +On récupère l'adresse avec l'opérateur `&` +```c +int x = 0; +int *p; +p = &x; +printf("%t %d", p, *p); +``` + +On peut afficher l'adresse avec `printf("%t", n)` +On peut afficher le contenu du pointeur avec `*n` \ No newline at end of file -- cgit v1.2.3