Binaire

dridri97 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 dridri97 -
Bonjour, je suis en terminale spé ISN et je dois faire un programme qui demande d'entrer deux binaires de 3 bits maximum, et les affiche, fait la somme des deux binaires, affiche le résultat de la somme sous forme d'un binaire.
J'ai commencer mais lorsque je compile il me donne pas le résultat de la somme des binaires. Pouvez vous m'aider ? Merci !


void main() {
   println("calcule de la somme de deux chifres binaires à 3 bits chacun");
   println("rappelon que les nombres binaires sont composé de 0 et de 1");
   println("entrer les bits du nombre binaire de droite à gauche");
   int i;
   //déclaration du tableau
    int [] binaire1 = new int [3];
    int [] binaire2 = new int [3];
       
   // remplissage du tableau
    for (i = 0; i < binaire1.length; i ++) {
      println("Entrer le bit n° " + i + " du 1er nombre binaire:");
      binaire1[i] = readInt();
     // if (binaire1  !=0 && !=1) {println("error")}
     //je sait pas comment ecrire le signe "diffrent" 
     
   
   }
   for (i = 0; i < binaire2.length; i ++) {
      println("Entrer le bit n° " + i + " du 2ème nombre binaire:");
      binaire2[i] = readInt();
   }
   //affichage
    println("le 1er nombre binaire est:");
   for (i = 0; i < binaire1.length; i ++) {
      print(binaire1[i] + " ");
   }
   println();
   
   println("le 2éme nombre binaire est:");
   for (i = 0; i < binaire2.length; i ++) {
      print(binaire2[i] + " ");
   }
 println();  
// calcul de la somme binaire
   int [] somme = new int [4];
   int [] retenue= new int [4];
   

// somme bit + bit 
 for ( i=0;i<2;i++) {   
 somme[i]= binaire1[i] + binaire2[i] + retenue[i];
  if (somme[i]==0) {somme[i]=0;retenue[i+1]=0;}
  if (somme[i]==1) {somme[i]=1;retenue[i+i]=0;}
  if (somme[i]==2) {somme[i]=0;retenue[i+1]=1;}
  if (somme[i]==3) {somme[i]=1;retenue[i+1]=1;}
      }
      
      if (retenue[i=3]==1){ 
          println("retenue [" +i+"]"+ retenue[i]);
          }

// affichage du nombre binaire
 println();
 println("la somme des deux binaires est: ");
 for ( i=0;i>2;i++){
 println("i=" + i +   ", somme[" + i + "]=" + somme[i]);
 }

     if (retenue[i=3]==1) 
     {println ("i=" + 3 +   ", somme[" + i + "]=" + somme[i]);
     }


//le probleme se fixe sur l'addition de la retenue a la somme i-1 je croi
//et tjr sur la retenue, si il reste 1 a la fin il ne s'affichera pas ...
//et je supose aussi que le calcule se fait ds le mauvais sens! resolu
//mais bon le principal marche !! a peu prés...


 
}
A voir également:

1 réponse

KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Bonjour,

Ta dernière boucle est fausse
for ( i=0;i>2;i++) 

J'imagine que tu voulais dire
for (i=0; i<2; i++) 
.

Attention : cela ne va compter que 0 et 1, a priori tu devrais aller jusqu'à 3 vu la dimension de ton tableau somme...
0
dridri97
 
Merci beaucoup pour votre aide !
0