ajout exemples de code cm2
This commit is contained in:
parent
97cb94f568
commit
e0cf06fbe7
12
cm2-nombres-code/char.c
Normal file
12
cm2-nombres-code/char.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
unsigned char a = 155;
|
||||||
|
unsigned char b = 155;
|
||||||
|
unsigned char c = a + b;
|
||||||
|
|
||||||
|
printf("Value of c is: %d\n",c);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
12
cm2-nombres-code/char2.c
Normal file
12
cm2-nombres-code/char2.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
char a = 127;
|
||||||
|
char b = 1;
|
||||||
|
char c = a + b;
|
||||||
|
|
||||||
|
printf("Value of c is: %d\n",c);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
11
cm2-nombres-code/double.c
Normal file
11
cm2-nombres-code/double.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
double a = 0.1;
|
||||||
|
double b = 0.2;
|
||||||
|
double c = a + b;
|
||||||
|
|
||||||
|
printf("Value of c is: %.20f\n",c);
|
||||||
|
|
||||||
|
}
|
11
cm2-nombres-code/int.c
Normal file
11
cm2-nombres-code/int.c
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
void main()
|
||||||
|
{
|
||||||
|
int a = 0.1;
|
||||||
|
int b = 0.2;
|
||||||
|
int c = a + b;
|
||||||
|
|
||||||
|
printf("Value of c is: %d\n",c);
|
||||||
|
|
||||||
|
}
|
@ -49,7 +49,7 @@ La notion de type
|
|||||||
Les entiers
|
Les entiers
|
||||||
===========
|
===========
|
||||||
|
|
||||||
Ici, 0.1 + 0.2 = 0 (int.c)
|
Ici, 0.1 + 0.2 = 0 ([int.c](cm2-nombres-code/int.c))
|
||||||
|
|
||||||
Représentation des entiers positifs
|
Représentation des entiers positifs
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
@ -57,11 +57,11 @@ Représentation des entiers positifs
|
|||||||
- Changement de base "simple" (TD2)
|
- Changement de base "simple" (TD2)
|
||||||
- 155<sub>10</sub> -> 1001 1011<sub>2</sub> (0x9B)
|
- 155<sub>10</sub> -> 1001 1011<sub>2</sub> (0x9B)
|
||||||
|
|
||||||
Exemple simple d'addition (char.c) :
|
Exemple simple d'addition :
|
||||||
- 155 + 3 = 158
|
- 155 + 3 = 158
|
||||||
- 1001 1011 + 0000 0011 = 1001 1110
|
- 1001 1011 + 0000 0011 = 1001 1110
|
||||||
|
|
||||||
Mais le débordement :
|
Mais le débordement ([char.c](cm2-nombres-code/char.c)) :
|
||||||
- 155 + 155 = 310
|
- 155 + 155 = 310
|
||||||
- **MAIS** 1001 1011 + 1001 1011 = 1 0011 0110 -> 0011 0110 = 54 (= 310 - 256)
|
- **MAIS** 1001 1011 + 1001 1011 = 1 0011 0110 -> 0011 0110 = 54 (= 310 - 256)
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ Représentation des entiers relatifs
|
|||||||
- Sur 1 octet : 1 bit de signe, 7 bits de valeur
|
- Sur 1 octet : 1 bit de signe, 7 bits de valeur
|
||||||
- 1001 1011 -> -27 ;-)
|
- 1001 1011 -> -27 ;-)
|
||||||
- Convention d'interprétation du binaire par le type...
|
- Convention d'interprétation du binaire par le type...
|
||||||
- 0000 0000 -> 0, 1000 000 -> -0 => 0.1 + 0.2 == -0 (int2.c)
|
- 0000 0000 -> 0, 1000 000 -> -0 => 0.1 + 0.2 == -0
|
||||||
- Pas très pratique...
|
- Pas très pratique...
|
||||||
|
|
||||||
- Complément à 2
|
- Complément à 2
|
||||||
@ -88,7 +88,7 @@ Représentation des entiers relatifs
|
|||||||
- les opérations sont identiques à celles pour un entier non signé
|
- les opérations sont identiques à celles pour un entier non signé
|
||||||
- Détails [ici](https://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux)
|
- Détails [ici](https://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux)
|
||||||
|
|
||||||
- Débordement (char2.c) :
|
- Débordement ([char2.c](cm2-nombres-code/char2.c)) :
|
||||||
- 127 + 1 = 128
|
- 127 + 1 = 128
|
||||||
- 0111 1111 + 0000 0001 = 1000 0000 -> -128
|
- 0111 1111 + 0000 0001 = 1000 0000 -> -128
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ Représentation des entiers relatifs
|
|||||||
Les réels
|
Les réels
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Ici, 0.1 + 0.2 = 0.30000000000004 ([détails ici](https://0.30000000000000004.com/)) (double.c)
|
Ici, 0.1 + 0.2 = 0.30000000000004 ([détails ici](https://0.30000000000000004.com/)) ([double.c](cm2-nombres-code/double.c))
|
||||||
|
|
||||||
|
|
||||||
Virgule fixe
|
Virgule fixe
|
||||||
|
Loading…
Reference in New Issue
Block a user