Salut,
:hola: J'ai besoin d'aide pour construire un programme. 8O
Voici l'énoncé :
Et merci.Citation:
construire un programme d'addition de deux nombres binaires
exemple: a=1101 et b=1010 , a+b=10111.
Version imprimable
Salut,
:hola: J'ai besoin d'aide pour construire un programme. 8O
Voici l'énoncé :
Et merci.Citation:
construire un programme d'addition de deux nombres binaires
exemple: a=1101 et b=1010 , a+b=10111.
Bonjour et bienvenue !
Peux-tu montrer ce que tu as déjà fait et expliquer quels problèmes tu rencontres ?Citation:
Envoyé par demha
Salut,
est ce que tu sais faire des addition en binaire?
C'est les règles qu'en décimale :
On commence à additionner les bits de droite, on peut avoir des retenues lorsque la somme de deux bits dépasse la valeur de l'unité la plus grande (c-a-d 1), cette retenue est reportée sur le bit de poids plus fort suivant.
Par exemple :
> 0 1 1 0 1
+ 0 1 1 1 0
- - - - - -
= 1 1 0 1 1
Pour ton programme je crois qu'il va faloir que tu réflécisses sur comment coder ces bits.
Le plus symple (peut-etre) ce de créer des Tableaux de CARDINAL. ou des chaines de caractères.
voici un programe ( sans mise forme) qui aditionne, soustrait,multiplie deux entiers et les traduit en Binaire sur 32 bits.
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 program bin_convert; uses crt; Var NombreB,Ch1,Ch2,Ch3 : LongInt; Sg,Er :Integer; Op :Char; {=========================================================================} procedure Bin(Binair:longint); (* Décimal vers binaire *) var c,i :LongInt; co,ii :Byte; begin c:= binair; for ii := 32 downto 1 do begin i:=ii; i :=(c*2) shr i and 1; write (i); NombreB := NombreB + i; end; end; {=========================================================================} {La lecture Binaire se fait de la droite vers la gauche} {Programe Principal} begin clrscr; writeln ('entrez le premier chiffre : '); ReadLn (Ch1); writeln ('entrez le Second chiffre : '); ReadLn (Ch2); ClrScr; WriteLn ('Entrez l''oprateur (+ - * ) :'); ReadLn (Op); Case Op of '+':Ch3 :=Ch1+Ch2; '-':Ch3 :=Ch1-Ch2; '*':Ch3 :=Ch1*Ch2; End ; ClrScr; NombreB := Ch3; WriteLn ('Le rsultat Binaire de ',Ch1, op, Ch2 ,'est : ') ; WriteLn; Bin(NombreB); readln; End.