Binaire

Fermé
dridri97 Messages postés 1 Date d'inscription lundi 1 décembre 2014 Statut Membre Dernière intervention 1 décembre 2014 - Modifié par KX le 1/12/2014 à 20:26
 dridri97 - 1 déc. 2014 à 20:55
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 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
1 déc. 2014 à 20:36
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
Merci beaucoup pour votre aide !
0