IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

[Projet][Débutant]mon projet: realiser une calculatrice binaire avec interface


Sujet :

Java

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Avril 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par d�faut [Projet][Débutant]mon projet: realiser une calculatrice binaire avec interface
    Bonjour � tous,
    je suis d�butant en Java, le theorie ne me suffit plus car je comprends tout mais les exercices me possent probleme.
    j'ai un projet personnel a faire: realiser une calculatrice binaire.. qui aura deux fonctions; tout comme la calculatrice de windows
    1. convertir un chiffre decimal en binaire
    2. faire des operations avec les chiffres en binaire.

    je compte faire l'interface graphique avec jbuilder mais tout d'abord j'aimerai savoir comment je peux faire, est ce un projet faisable?
    de quoi aurais je besoin pour commencer? des librairies particulieres? ou methodes deja existantes? ainsi je ne me lance pas dans la recherche d'algorithmes inutiles

    merci de votre r�ponse,

    mario

  2. #2
    Membre Expert
    Avatar de afrikha
    Profil pro
    �tudiant
    Inscrit en
    Ao�t 2005
    Messages
    1 600
    D�tails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (�le de France)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 600
    Par d�faut Re: mon projet: realiser une calculatrice binaire avec inter
    Citation Envoy� par mariogarcia
    Bonjour � tous,
    je suis d�butant en Java, le theorie ne me suffit plus car je comprends tout mais les exercices me possent probleme.
    il y a comme une petite contradiction ici....
    j'ai un projet personnel a faire: realiser une calculatrice binaire.. qui aura deux fonctions; tout comme la calculatrice de windows
    1. convertir un chiffre decimal en binaire
    2. faire des operations avec les chiffres en binaire.

    je compte faire l'interface graphique avec jbuilder mais tout d'abord j'aimerai savoir comment je peux faire, est ce un projet faisable?
    faisable,oui mais pas en tant que premier programme en java.
    de quoi aurais je besoin pour commencer? des librairies particulieres? ou methodes deja existantes? ainsi je ne me lance pas dans la recherche d'algorithmes inutiles
    le jdk1.5 devrait amplement suffire � ton projet.pour les algo c'est � toi de les faire mais rien de bien compliqu�.Si tu as des questions l� dessus,tu peux poster dans le forum algorithme,on se fera une joie de t'aider
    Bon courage

  3. #3
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 904
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par d�faut
    Toutes les operations binaires ou presque sont presentes dans le language grace aux operateurs : & (AND), | (OR), ^ (XOR), ~(COMPLEMENT), << (LEFT_SHIFT), >> (RIGHT_SHIFT), ...
    Liste complete des operateurs Java.
    Comportement des operateurs bit-a-bit, de complement et de decalage.

    Attention TOUS ces operateurs fonctionnent uniquement sur des entiers 32-bits (leur resultat est un entier meme s'ils sont appliques sur des nombres plus gros). Pour des operations sur des nombres plus grands (long) il te fraudra faire a ta sauce (probablement en travaillant par morceaux ou alors en travaillent directement sur la chaine de characteres contenant la representation binaire du nombre).

    Les classes Integer, Long et Short contiennent la methode toBinaryString() qui retourne une chaine de charactre avec la representation binaire du nombre (la chaine ne contient donc que des '0' et des '1'). Ca pourra t'etre utile pour ton affichage.
    Les classe Float et Double disposent des methodes floatToIntBits(), floatToRawIntBits(), doubleToLongBits() et doubleToRawLongBits().


    Pour les classes BigDecimal et BigInteger il faut voir avec les methodes existantes dans ces classes tant pour les operations tant que pour la representation binaire.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  4. #4
    Membre confirm�
    Inscrit en
    Avril 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par d�faut
    en fin, j'ai d�ja fait quelques petits exercices en java mais rien de tres grand.. le probleme est que je ne suis pas tres dou� en programmation et ce malgr� le fait que c'est un des sujets qui me passionn� le plus.
    je vais lire la documentation et me renseigner et je reviendrai..
    Merci d'avance.
    mario

  5. #5
    Membre confirm�
    Inscrit en
    Avril 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    public class Tobinary{
     public static void main(String args[]){
       int intBase10= 2;
       String intBase2 = Integer.toBinaryString(intBase10);
       System.out.println(intBase2);
     }
    }
    ce programme convertit d�ja un nombre d�cimale en un binaire, le problem est que si je comprends bien c'est un String, donc on ne peut pas faire des op�ration aritmetiques avec lui?
    intBase2 est donc une chaine de caracteres... si je fais un parseInt() ce sera un decimal?
    merci

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    119
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 119
    Par d�faut
    Salut,

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    int i = Integer.parseInt("101",2);
    Je pense que tu as tout maintenant...

  7. #7
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 904
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par d�faut
    en plus la representation binaire string n'est vraiment utile que :
    - pour l'affichage.
    - pour les calculs sur des mots de taille > 32-bits.

    Pour une gestion avec des entiers normaux tu peux tres bien faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int i1 = 1;
    int i2 = 2;
     
    int i3 = i2 & i1;
    int i4 = i2 | i1;
    int i5 = i2 ^ i1;
    int i6 = ~i2;
    int i7 = i2 << 1;
    int i8 = i2 >> 1;
    int i9 = i2 <<< 1;
    int i10 = i2 >>> 1;
    ...
    Pour ca pas besoin de se prendre la tete donc.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  8. #8
    Membre �prouv�
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    961
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 961
    Par d�faut
    Pour d�velopper ce qu'a dit Bouye : un nombre c'est un nombre, d�cimal ou binaire ne sont que des fa�ons d'�crire ce nombre. Vous n'avez pas besoin de convertir pour faire les calculs. De toute fa�on, les microprocesseurs travaillent en binaire. On pourrait vouloir travailler avec des chiffres romains que �a ne changerait rien. En somme le concept de nombre est ind�pendant de son affichage.
    D�cimal, binaire, c'est la repr�sentation lisible, l'affichage. Ce qu'on voit � l'�cran n'est pas un nombre, c'est une cha�ne de caract�re. La seule complication, c'est que Java affiche / lit les nombres en d�cimal par d�faut. Pour afficher / lire en d�cimal, il faut donc cr�er / interpr�ter explicitement les cha�nes de caract�res. Quand vous utilisez directement les d�cimaux, Java fait aussi la conversion cha�ne - nombre, la seule diff�rence, c'est qu'il la fait implicitement tout seul comme un grand.

  9. #9
    Membre confirm�
    Inscrit en
    Avril 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par d�faut
    Citation Envoy� par bouye
    en plus la representation binaire string n'est vraiment utile que :
    - pour l'affichage.
    - pour les calculs sur des mots de taille > 32-bits.

    Pour une gestion avec des entiers normaux tu peux tres bien faire :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    int i1 = 1;
    int i2 = 2;
     
    int i3 = i2 & i1;
    int i4 = i2 | i1;
    int i5 = i2 ^ i1;
    int i6 = ~i2;
    int i7 = i2 << 1;
    int i8 = i2 >> 1;
    int i9 = i2 <<< 1;
    int i10 = i2 >>> 1;
    ...
    Pour ca pas besoin de se prendre la tete donc.
    tu vas surement me prendre par un con mais je ne comprends pas ce que ce code que tu m'as propos� fonctionne.
    si je comprends bien bugfactory je peux faire la somme en decimale... donc faire deux plus deux=4 et ce serait la meme chose? ke vais essayer maintenant.. merci

  10. #10
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 904
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par d�faut
    Aille !

    Pourtant tu disais :
    faire des operations avec les chiffres en binaire.
    Mais faudrait peut-etre connaitre les operatione binaire...
    Dis moi tu ne parlais pas des operations arithmetique (+, -, *, /, ....) quand meme ? Parce que la y a meme pu la peine de se casser la tete.

    Bref, donc (sauf erreur de calcul car aujourd'hui a pas la tete a faire du calcul binaire) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int i1 = 1;            // 0...001
    int i2 = 2;            // 0...010
     
    int i3 = i2 & i1;      // 0...000 <= 0...010 AND 0...001
    int i4 = i2 | i1;      // 0...011 <= 0...010 OR 0...001
    int i5 = i2 ^ i1;      // 0...011 <= 0...010 XOR 0...001
    int i6 = ~i2;          // 1...101 <= COMPLEMENT 0...010 
    int i7 = i2 << 1;      // 0...100 <= 0...010 LEFT_SHIFT 1
    int i8 = i2 >> 1;      // 0...001 <= 0...010 RIGHT_SHIFT 1
    int i9 = i2 <<< 1;     // 0...100 <= 0...010 LEFT_SHIFT_KEEP_SIGN 1
    int i10 = i2 >>> 1;    // 0...001 <= 0...010 RIGHT_SHIFT_KEEP_SIGN 1
    Note comme indique precedement Java ne travaille que sur des mots de 32-bits pour les operations binaires donc :

    0...001 correspont en fait a 00000000000000000000000000000001.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  11. #11
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 904
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 48
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 904
    Billets dans le blog
    54
    Par d�faut
    Ah oui la j'avais pas lus jusqu'au bout...

    Rien de bien complexe pour faire des operation arithmethiques...
    Allez juste une derniere astuce sur le calcul binaire, quand on travaille sur des entiers :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    int i1 = 1;
    int i2 = 2;
     
    int i3 = i1 + i2;
    // C'est la meme chose que :
    int i4 = i1 | i2;
     
    ////////////
     
    int i5 = i2*2;
    // C'est la meme chose que :
    int i6 = i2 << 1;
     
    ////////////
     
    int i7 = i2/2;
    // C'est la meme chose que :
    int i8 = i2 >> 1;
    Mais je doute que ca te soit utilie.
    ! Attention a ne pas generaliser (nottement l'addition marche dans ce cas bien specifique*). Pour la multiplication par 2 et la division (entiere) par 2 ca deconne si le nombre est trop grand** ou negatif***.

    * si nombres de meme signe et qu'il n'y a pas de colisions entre les bits des 2 nombres. Si collision => il faut protager la retenue = plus de calculs.

    ** ca le fait aussi avec l'operateur * bien sur et ca vient de la taille max d'un int.

    *** car le bit de signe n'est pas preserve. Voir les operateurs <<< et >>>.


    Regarde du cote de NumberFormat et DecimalFormat et les differents methodes parseXXX des classes de nombre pour faire des conversion chaine <=> nombre.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  12. #12
    Membre confirm�
    Inscrit en
    Avril 2005
    Messages
    127
    D�tails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 127
    Par d�faut
    ce que je cherche seulement est faire des op�ration arithmetiques +, -, /,*
    ce seront des nombres 8 bits seulement,
    elle va etre surtout etre utilis� pour convertir en binaire des nombres jusqu'a 255 inclus pas plus grand, si plus grand je lance une exception

    la retenue es un aspect important que je dois faire.. c'est l� ou cela coinc� le plus.

    merci d'avance

    Mario

Discussions similaires

  1. Mon site affiche une page blanche avec Firefox : Pourquoi ? Que faire ?
    Par bnoir dans le forum G�n�ral Conception Web
    R�ponses: 3
    Dernier message: 25/10/2006, 16h22
  2. importer une classe dans mon projet
    Par dietrich dans le forum Delphi
    R�ponses: 1
    Dernier message: 17/07/2006, 09h57
  3. Comment inser� une image dans mon projet?
    Par Micheal1221 dans le forum C++Builder
    R�ponses: 2
    Dernier message: 07/07/2006, 14h00
  4. R�ponses: 2
    Dernier message: 12/05/2006, 15h58
  5. R�ponses: 2
    Dernier message: 09/05/2006, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo