SOMME NOMBRE BINAIRE

cs_david Messages postés 22 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 19 mai 2012 - 25 févr. 2011 à 10:40
Scupper Messages postés 28 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 12 décembre 2013 - 2 mars 2011 à 22:47
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52854-somme-nombre-binaire

Scupper Messages postés 28 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 12 décembre 2013
2 mars 2011 à 22:47
@Menuki : C fait :D !!
Menuki Messages postés 13 Date d'inscription lundi 10 octobre 2005 Statut Membre Dernière intervention 11 août 2008
28 févr. 2011 à 11:04
Bonjour,

Il n'y aurait pas comme une erreur?
Tu n'oublierais pas la retenue?
Je m'explique : tu rajoutes un 0 dans le résultat si les deux bits sont égaux et un 1 s'ils sont différents.
En effet 0+0 = 0, 0+1=1, 1+0=1.
Mais 1+1 = 10! Ca donne bien 0 mais modulo 2, il faut rajouter la retenue au chiffre suivant.

Reprenons ton exemple :
0000000011101010
+
0000000000011011
----------------------
= 0000000100000101

Et oui, 234 + 27 = 261 et pas 241!

Vérifier ses résultats, c'est la base!
Scupper Messages postés 28 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 12 décembre 2013
25 févr. 2011 à 19:07
David, regarde le code suivant est une interface graphique que tu pourrait changer à ta guise ...
Le code est tel que tu entre deux texte et dans la section TexteField il te montre la valeur :
texte1 + texte2 une fois tu clique sur le boutton somme ...
Si tu es intérréssé par ce code je pourrais le modifier de telle façon il suit le code audessus, mais je crois que maintenant tu peux le modifier comme tu veux :D

import java.awt.*;
import java.awt.event.*;
import java.awt.color.*;
import java.awt.font.*;
import java.awt.image.*;

/**
*
* @author scupper
*
*/
public class DefaultInterface extends Frame implements ActionListener {

private final int radix = 32;

TextField tf1=new TextField(radix),
tf2=new TextField(radix),
tf=new TextField(radix);

Button ok = new Button("Sommer ...");
Panel p1,p2;
Canvas c[] = new Canvas[2];

public DefaultInterface(String title){
super(title);


for(int i =0;i<2;i++){
c[i] = new Canvas();
}
p1 = new Panel();
p2 = new Panel();
GridLayout gl1 = new GridLayout(4,1,10,10);
GridLayout gl2 = new GridLayout(1,4,10,0);

p2.setLayout(gl2);
p2.add(c[0]);
p2.add(ok);
p2.add(c[1]);
p1.setLayout(gl1);
p1.add(tf1);
p1.add(tf2);
p1.add(tf);
p1.add(p2);

tf1.setBackground(Color.white);
tf2.setBackground(Color.white);
tf.setBackground(Color.white);
tf.setEditable(false);

add(p1);
ok.addActionListener(this);

}

public static void main(String[] args){
DefaultInterface obj = new DefaultInterface("Testin' ...");
obj.setSize(200, 200);
obj.setVisible(true);
}

@Override
public void actionPerformed(ActionEvent arg0) {
String texte1,texte2;
texte1=tf1.getText();
texte2=tf2.getText();
//Procedure de convertissage et de calcule
tf.setText(texte1+"+"+texte2);
}


}
Scupper Messages postés 28 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 12 décembre 2013
25 févr. 2011 à 18:10
je vois , mais tu C ke pour moi l'interface graphique C pas vraiment intérréssant tu pourrait tjrs ou bi1 créer une frame ou bien une applet pour contenir deux TextField pour les deux nombres, une autre région TextFiled pour la somme et un Button de telle façon tu introduit sur le bouton un Listener et puis dans la méthode que tu devrait surchaG, tu introduis les fonctions de cette classe, ce que je trouvais intérréssant dans ce code c'était le fait que je pourrait maintenant faire la somme de nombre sur une longeur indéfini en utilisant le champ "radix", puisque on ne peut pas dépasser un nombre max même si on passe a Long, je sais pas si tu m'as compris mais c'est une classe que je prévoit d'utiliser dans le futur proche :D
cs_david Messages postés 22 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 19 mai 2012
25 févr. 2011 à 17:59
EN fait tu additionne deux chiffres et je voudrais les changer tu n'as pas fais une interface graphique ou tu peux entrer les chiffres que tu veux?
Scupper Messages postés 28 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 12 décembre 2013
25 févr. 2011 à 17:42
de quel opérand T entr1 de parler ??
cs_david Messages postés 22 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 19 mai 2012
25 févr. 2011 à 15:18
OK ça marche mais comment du fais pour changer les operandes
Scupper Messages postés 28 Date d'inscription jeudi 15 octobre 2009 Statut Membre Dernière intervention 12 décembre 2013
25 févr. 2011 à 14:19
le nom du fichier ou t'as mis ce code doit être NombreBaseBinaire.java et non pas S.java
cs_david Messages postés 22 Date d'inscription lundi 31 décembre 2001 Statut Membre Dernière intervention 19 mai 2012
25 févr. 2011 à 10:40
QUAND je compile il m'écrit ça

--------------------Configuration: JDK version 1.6.0_24 <Default>--------------------
C:\Program Files\Xinox Software\JCreator LE\MyProjects\EXO\S.java:10: class NombreBaseBinaire is public, should be declared in a file named NombreBaseBinaire.java
public class NombreBaseBinaire {
^
Note: C:\Program Files\Xinox Software\JCreator LE\MyProjects\EXO\S.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error

Process completed.
Rejoignez-nous