Aide - Recherche - Membres - Calendrier
Version complète : Calculateur Binaire ?
CandiULB > Discussions Générales > Autres Discussions > Divers > Informatique > Hardware
Boris
Salut,
Je cherche un calculateur binaire pour effectuer les operations de bases tels que l'addition, la soustraction, la multiplication et la division smile.gif

Donnez moi un lien please, mon ami google ne m'aide pas beaucoup tongue2.gif

edit: j'ai oublié de preciser qu'il faut que ca puisse utiliser des virgule en binaire smile2.gif

genre 1 / 11 = 0.01010101010101....
LeTournaisien
tu peux coder ça en 3 lignes en C avec scanf et sprintf
Boris
Citation (LeTournaisien @ Nov 5 2006, 00:10)
tu peux coder ça en 3 lignes en C avec scanf et sprintf
*

je connais pas encore le C tongue2.gif
y'a moyen d'afficher en binaire en C++ ?
Ou il faut refaire les calcul (qui me prendrait quand meme une petite heure à coder pour corriger tous les bgs etc..) et se casser la tete a minuit tongue2.gif
Cassidy
Application -> Accessoires -> Calculatrice.

Affichage -> Mode scientifique

choisir Bin en haut à droite.
Boris
Merci laugh.gif biggrin[1].gif biggrin.gif tongue2.gif


EDit: ah non la division va pas sad.gif
1/11 = 0 sad.gif
Cassidy
Mais si, je viens de tester
Boris
Citation (Cassidy @ Nov 5 2006, 01:40)
Mais si, je viens de tester
*

avec virgule et tout et tout ? blink.gif
zelllogan
y en a un qui parle de la calculatrice windows et l'autre celle d'ubuntu smile.gif , enfin je pense biggrin.gif
LeTournaisien
Citation (Boris @ Nov 5 2006, 00:13)
Citation (LeTournaisien @ Nov 5 2006, 00:10)
tu peux coder ça en 3 lignes en C avec scanf et sprintf
*

je connais pas encore le C tongue2.gif
y'a moyen d'afficher en binaire en C++ ?
Ou il faut refaire les calcul (qui me prendrait quand meme une petite heure à coder pour corriger tous les bgs etc..) et se casser la tete a minuit tongue2.gif
*



bah en c++ ça ira aussi.
Cassidy
Citation (Boris @ Nov 5 2006, 03:06)
Citation (Cassidy @ Nov 5 2006, 01:40)
Mais si, je viens de tester
*

avec virgule et tout et tout ? blink.gif
*



Mais oui que ça marche.



Zellogan > Ben oui c'est la calculatrice de GNOME évidemment. smile.gif
Boris
Citation (zelllogan @ Nov 5 2006, 10:45)
y en a un qui parle de la calculatrice windows et l'autre celle d'ubuntu smile.gif , enfin je pense biggrin.gif
*

True smile.gif
Merci et merci cassidy smile.gif

Celle d'ubuntu fonctionne tres bien smile2.gif
Boris
Nouveau probleme : la calculatrice unbuntu me semble limité a un affichage de 30 chiffres sad.gif
Si quelqu'un sait ou je peux en trouver une similaire mais avec des centaines de chiffres apres la virgules ou bien si je peux trouver le source quelques part de cette calculatrice ou une similaire en c++ ?

(Serieux j'ai pas envie de reecrire tout le code d'une calculatrice depuis le debut sleep.gif )



Merci beaucoup d'avance smile2.gif
spacewalker
30 chiffres, sans surprise, ca fait +- 32 bits ... y a surement moyen de l'étendre à 64 en trafiquant le code source.. mais si tu veux plus tu vas devoir utiliser libgmp (qui est tres bien foutue)

il y a moyen de faire une calculatrice polonaise inversée de base en moins de 2h avec libgmp.
Boris
Mouais je sens que je vais perdre plus de temp a chercher a comprendre a demander a ameliorer etc ...

Je pense que je vais m'en faire une moi-meme ca me prendra 6-12heure et puis voila smile2.gif
Au moins ce sera optimisé pour mes calcul smile.gif
spacewalker
tu dois faire quelles opérations ? précision variable ou fixe ?
Boris
Citation (spacewalker @ Nov 8 2006, 13:06)
tu dois faire quelles opérations ? précision variable ou fixe ?
*

en gros ce qui m'interesse surtout c'est la division sur des nombres binaires !
exemple : 1/11111111111111111111111111111111111111111=0,000000000000000000000000000000000000
0001

avec beaucoup de chiffres apres la virgules (de l'ordre des centaines) smile2.gif
Boris
Yahou ma calculatrice avance : j'ai deja implanté l'adittion et la multiplication sur des nombres entiers dans n'importe quel base (2 -> INT_MAX) dans un vecteur de taille 100.000 smile2.gif

cad qu'en base 10 je peux stocker des nombres allant de 0 à 10^100.000 tongue2.gif
spacewalker
Citation (Boris @ Nov 9 2006, 17:05)
Yahou ma calculatrice avance : j'ai deja implanté l'adittion et la multiplication sur des nombres entiers dans n'importe quel base (2 -> INT_MAX) dans un vecteur de taille 100.000  smile2.gif

cad qu'en base 10 je peux stocker des nombres allant de 0 à 10^100.000  tongue2.gif
*

INT_MAX c'est 32 bits par defaut sous x86

t'es tres loin de tes 120 décimales !!
edit: oops mal lu. de ttes facons tu risques d'avoir des pb pour la division, l'algorithme est loin d'etre trivial
spacewalker
tiens je m'ennuyais, voilà de quoi t'amuser

apt-get install libgmp3-dev

Code
/* operations binaires avec libgmp */
#include <gmp.h>
#include <stdio.h>

int main(){
  int prec;
  char op;
  mpf_t a, b,r;
  mpf_init(a);
  mpf_init(b);
  mpf_init(r);
  printf("precision?\n");
  scanf("%d",&prec);
  if(prec<1 || prec>32000){
      printf("faut etre raisonable ...\n");
      return 1;
   }
   mpf_set_default_prec(prec);
   printf("premier nombre\n");
   mpf_inp_str(a,stdin,2);
   printf("second nombre\n");
   mpf_inp_str(b,stdin,2);
   printf("opération : (/*+-)\n");
   scanf("\n%c",&op);
   switch(op){
       case '/':
           mpf_div(r,a,b);
           break;
       case '*':
           mpf_mul(r,a,b);
           break;
       case '+':
           mpf_add(r,a,b);
           break;
       case '-':
           mpf_sub(r,a,b);
           break;
       default:
           printf("faut apprendre a ecrire boris !\n");
           return 1;
   }
   mpf_out_str(stdout,2,prec,r);
   printf("\n");
   return 0;
}


gcc -o mydiv mydic.c -lgmp
./mydiv
spacewalker
d'ailleur boris t'as pas dit ce que tu pensais de ma calculette
Boris
Citation (spacewalker @ Nov 15 2006, 19:03)
d'ailleur boris t'as pas dit ce que tu pensais de ma calculette
*

Ca compile pas (mais c'est peut-etre pcq j'ai pas le "gmp.h" happy.gif)
Sinon j'en avais fait une moi meme (pas tres au point mais bon tongue2.gif )
Enfin, merci quand meme biggrin.gif
spacewalker
apt-get install libgmp3-dev

dur dur...
LeTournaisien
Citation (spacewalker @ Nov 15 2006, 21:21)
apt-get install libgmp3-dev


<mode troll on>
et avec un vrai OS on installe ça comment ?
</mode troll off>
Boris
Citation (spacewalker @ Nov 15 2006, 21:21)
apt-get install libgmp3-dev

dur dur...
*

Exactement, je me tue a le dire : J'UTILISE WINDOWS !!!
spacewalker
t'utilise windows ben tu te débrouilles quand on te propose une solution simple à un probleme compliqué
Boris
Au moins windows ne fait pas les choses en random tongue2.gif
Sinon merci quand meme smile2.gif

(Et faut pas croir que je suis un fanatique ... quand le besoin se fait sentir j'utilise aussi linux [en VM mais bon biggrin.gif ])
Boris
RE> Bon maintenant je cherche une calculatrice effectuant les calculs en n'importe quels bass ! binaire(2), decimal (10) hexa(16) mais aussi les bases quelconques (3),(4),(5),(19),(20),(21),.....
Gerant la division sur des reels ! Cad que je veux avoir des chiffres derriers la virgule (de preference beaucoup)

Merci beaucoup de vos reponses !
(sauf celles de certains dont je ne citerai pas le noms mais qui lachent des propos du style : "CREE LA TOI MEME !") tongue2.gif
Boris
Citation (spacewalker @ Nov 10 2006, 02:32)
tiens je m'ennuyais, voilà de quoi t'amuser

apt-get install libgmp3-dev

Code
/* operations binaires avec libgmp */
#include <gmp.h>
#include <stdio.h>

int main(){
  int prec;
  char op;
  mpf_t a, b,r;
  mpf_init(a);
  mpf_init(b);
  mpf_init(r);
  printf("precision?\n");
  scanf("%d",&prec);
  if(prec<1 || prec>32000){
      printf("faut etre raisonable ...\n");
      return 1;
   }
   mpf_set_default_prec(prec);
   printf("premier nombre\n");
   mpf_inp_str(a,stdin,2);
   printf("second nombre\n");
   mpf_inp_str(b,stdin,2);
   printf("opération : (/*+-)\n");
   scanf("\n%c",&op);
   switch(op){
       case '/':
           mpf_div(r,a,b);
           break;
       case '*':
           mpf_mul(r,a,b);
           break;
       case '+':
           mpf_add(r,a,b);
           break;
       case '-':
           mpf_sub(r,a,b);
           break;
       default:
           printf("faut apprendre a ecrire boris !\n");
           return 1;
   }
   mpf_out_str(stdout,2,prec,r);
   printf("\n");
   return 0;
}


gcc -o mydiv mydic.c -lgmp
./mydiv
*

PS: je te hais car tu me force la main a unix tongue2.gif
Bon je vais quand meme tester smile2.gif


edit : il est 2h du mat et j'arrive pas a compiler avec ubuntu et ca me fait chier !
Cassidy
Citation (Boris @ Nov 30 2006, 01:55)
edit : il est 2h du mat et j'arrive pas a compiler avec ubuntu et ca me fait chier !
*


Il est 10h21 et je n'ai aucun problème pour compiler ce truc sous Ubuntu.
Boris
Pas grave ! J'en ai marre de demander de l'aide !
Je vais faire les calcul a la main (par ecrit)
Puis si je suis motivé et que d'autres le sont aussi j'engagerai un equipe de recherche ! biggrin.gif
Jonathan
Citation (LeTournaisien @ Nov 15 2006, 21:49)
Citation (spacewalker @ Nov 15 2006, 21:21)
apt-get install libgmp3-dev


<mode troll on>
et avec un vrai OS on installe ça comment ?
</mode troll off>
*



Ahaha, dans le vent ton troll...

Anti-débianiste ou compileur fou?
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'informations, la mise en page et les images, veuillez cliquer ici.
Invision Power Board © 2001-2012 Invision Power Services, Inc.