microprocesseurs langage C
Bonjour,
Ecrire un programme e langage C pour additione deux grands nombres (>255) [sous la forme (x,y) dans le brouillant pas dans le programme,donc (x,y) +(x',y') et il va nous donner le resultat (x+x',y+y')],on suppose que le pc connait pas les grands nombres (additioner deux tableaux)
c'est ce que fait le systeme d'exploitation
voila un exemple:
on fait entrer (1,44) et on sait qu'elle signifie 300
et (1,144) signifie 400
1,44+1,144=2,584 qui doit etre 700
si le nombre apres la vergule (584) est superieur a 255 on doit le placer dans la case qui suit
(1,44)=300=100101100=(sur 16 bits) 0000000100101100
(1,144)=400=110010000=0000000110010000
s'il vous plait aidez moi,j'arrive pas a comprendre cet exercice:cry:
microprocesseurs(langage C)
merci a vous deux pour votre aide
mais j'arrive pas a faire l'exercie parceque on pas fait le cours encore,et je comprends pas bien,le professeur nous a dit de le faire apres il vas nous expliquer la lecon,on va le corriger demain,et je l'ai pas encore fait,si vous pourriez m'aider a le faire s'il vous plait et merci beaucoup
Arithmétique de primaire (geek)
Citation:
Envoyé par souzen
1,44+1,144=2,584 qui doit etre 700
Non. C'est faux. Relis l'énoncé. {1;44} + {1;144}, ça donne {2;188}.
Cela signifie que dans cet exemple, il n'y a pas de retenue. Tu devras quand même la gérer pour que ça marche avec tous les nombres.
Citation:
Envoyé par
souzen
merci a vous deux pour votre aide
mais j'arrive pas a faire l'exercie parceque on pas fait le cours encore
On te fait faire des exercices avant le cours ? Curieux.
Si c'est le cas, c'est que le prof veut que tu ponde l'algorithme d'abord. L'écrire ensuite, c'est facile.
Citation:
et je comprends pas bien,le professeur nous a dit de le faire apres il vas nous expliquer la lecon,on va le corriger demain,et je l'ai pas encore fait,si vous pourriez m'aider a le faire s'il vous plait et merci beaucoup
Si tu t'y prends à la dernière minute, il ne faut pas t'étonner de ne pas y arriver (bon, d'accord, tout le monde a fait pareil un jour, moi le premier).
En tout état de cause, on ne va pas te pondre ton exercice à ta place, mais avec un tableau, c'est plus parlant. On va passer par l'hexadécimal. C'est un détour, mais ça t'aidera peut-être à comprendre. Donc, 300 en décimal, ça fait 012C en hexadécimal (base 16). Donc 01--, ça fait bien 1 en décimal, et --2C, ça fait 44. Tu t'y retrouves ? De même, 400 en décimal donne 0190 en hexa, soit 01-- qui fait 1, et --90 qui fait 144.
D'autre part, deux chifres hexa permettent de faire 256 combinaisons différentes, donc tiennent exactement dans un octet (tout l'intérêt de l'hexadécimal en informatique se trouvant ici). Par conséquent, si les cases de ton tableau font un octet chacune, ça donnerait à peu près ça :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
case 1 case 2
+----+----+
| 01 | 2C |
+----+----+
+----+----+
+ | 01 | 90 |
+----+----+
-----------------
+----+----+
= | 02 | BC |
+----+----+ |
Admettons maintenant que je veuille additionner 300 + 506, ce qui ferait 012C + 01FA. Là, en hexa, il y aura une retenue, car --2C + --FA font 0126. Tu poseras donc 26 et retiendra 01 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
case 1 case 2
+----+----+
| 01 | 2C |
+----+----+
+----+----+
+ | 01 | FA |
+----+----+
-----------------
01 <- Je retiens 1 ici.
+----+----+
= | 02 | 26 |
+----+----+
-----------------
+----+----+
= | 03 | 26 | Total final.
+----+----+ |
microprocesseurs(langage C)
mais j'arrive pas a faire lalgorithme je peux traduire l'algorithme en langage C,c'est difficile pour moi
microprocesseurs(langage C)
merci beaucoup pour votre aide:)