aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/architecture des ordinateurs/tme/tme2
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 3/architecture des ordinateurs/tme/tme2')
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo1/q1.c17
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo1/q2.c12
-rwxr-xr-xsemestre 3/architecture des ordinateurs/tme/tme2/exo2/mainbin0 -> 15536 bytes
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo2/q1-q2.md25
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo2/q3.c10
-rwxr-xr-xsemestre 3/architecture des ordinateurs/tme/tme2/exo3/q1bin0 -> 15480 bytes
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c23
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo4.c16
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme2/exo4.c.bp16
-rwxr-xr-xsemestre 3/architecture des ordinateurs/tme/tme2/mainbin0 -> 15584 bytes
10 files changed, 119 insertions, 0 deletions
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo1/q1.c b/semestre 3/architecture des ordinateurs/tme/tme2/exo1/q1.c
new file mode 100644
index 0000000..83f9ece
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo1/q1.c
@@ -0,0 +1,17 @@
+#include <stdio.h>
+
+int main(){
+ int i;
+ for(i = 0; i>= 0; i++);
+ printf("int\nmax: %d\nmin: %d\n\n", i-1, i);
+
+ char j;
+ for(j = 0; j>= 0; j++);
+ printf("char\nmax: %d\nmin: %d\n\n", (char) (j-1), j);
+
+ short k;
+ for(k = 0; k>= 0; k++);
+ printf("short\nmax: %d\nmin: %d\n\n", (short) (k-1), k);
+
+ return 0;
+}
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo1/q2.c b/semestre 3/architecture des ordinateurs/tme/tme2/exo1/q2.c
new file mode 100644
index 0000000..4350455
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo1/q2.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+
+int main(){
+ unsigned int i = 0;
+ i--;
+ printf("int\nmax: %u\nmin: %d\n\n", i, 0);
+
+ unsigned char j = 0;
+ j--;
+ printf("char\nmax: %u\nmin: %d\n\n", (unsigned char) j, 0);
+ return 0;
+}
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo2/main b/semestre 3/architecture des ordinateurs/tme/tme2/exo2/main
new file mode 100755
index 0000000..593ca11
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo2/main
Binary files differ
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo2/q1-q2.md b/semestre 3/architecture des ordinateurs/tme/tme2/exo2/q1-q2.md
new file mode 100644
index 0000000..d97fd9b
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo2/q1-q2.md
@@ -0,0 +1,25 @@
+## Question 1
+
+S: 0
+E: 1000 0010
+M: 010 0000 0000 0000 0000 0000
+
+## Question 2
+
+41950e56
+
+0100
+0001
+1001
+0101
+
+0000
+1110
+0101
+0110
+
+S: 0 -> positif
+E: 1000 0011 -> -128 + 3 = -125
+M: 001 0101 0000 1110 0101 0110 -> 6 + 5×16 + 14×16^2 + 5×16^4 + 1×16^5 = c'est long
+=> 18,632
+
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo2/q3.c b/semestre 3/architecture des ordinateurs/tme/tme2/exo2/q3.c
new file mode 100644
index 0000000..00e0325
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo2/q3.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+
+/* premier nombre est 1103888384 */
+/* deuxième est */
+int main(){
+ int i;
+ scanf("%d", &i);
+ printf("%f\n", *((float*) &i));
+ return 0;
+}
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1 b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1
new file mode 100755
index 0000000..7eeefe1
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1
Binary files differ
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c
new file mode 100644
index 0000000..cac5209
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo3/q1.c
@@ -0,0 +1,23 @@
+#include <stdio.h>
+float suite(int n){
+ if (n == 0) return 1;
+ return 2*suite(n-1)+1;
+}
+
+unsigned long long int suiteInt(int n){
+ if (n==0) return 1;
+ return 2*suiteInt(n-1)+1;
+}
+
+int main(){
+ float val = 1;
+ int i;
+ for (i = 0; i < 129 && val > 0; i++) {
+ val = suite(i);
+ printf("%d — %f\n", i, val);
+ printf("%d — %llu\n", i, suiteInt(i));
+ }
+ /* Le code déborde à partir de 127 avec la valeur "inf"
+ * À partir du 24, la suite devient impaire à cause d'un manque de précision des floats
+ * */
+}
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo4.c b/semestre 3/architecture des ordinateurs/tme/tme2/exo4.c
new file mode 100644
index 0000000..0338dec
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo4.c
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+int main(){
+ char s[25];
+ for (int i = 0; i< 25; i++) s[i] = 0;
+ scanf("%s", s);
+ s[24] = '\0';
+ for (int i = 0; s[i] != '\0'; i++){
+ if (s[i] > 'Z' ) {
+ printf("%c\n", s[i]);
+ s[i] = *s - ('a' - 'A');
+ }
+ }
+ printf("%s\n", s);
+ return 0;
+}
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/exo4.c.bp b/semestre 3/architecture des ordinateurs/tme/tme2/exo4.c.bp
new file mode 100644
index 0000000..53259cc
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/exo4.c.bp
@@ -0,0 +1,16 @@
+#include <stdio.h>
+
+int main(){
+ char s[25];
+ for (int i = 0; i< 25; i++) s[i] = 0;
+ scanf("%s", s);
+ s[24] = '\0';
+ for (int i = 0; s[i] != '\0'; i++){
+ if (s[i] > 'Z' ) {
+ printf("%c\n", s[i]);
+ s[i] = (char) ((int) *s - ('a' - 'A'));
+ }
+ }
+ printf("%s\n", s);
+ return 0;
+}
diff --git a/semestre 3/architecture des ordinateurs/tme/tme2/main b/semestre 3/architecture des ordinateurs/tme/tme2/main
new file mode 100755
index 0000000..781d5c7
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme2/main
Binary files differ