cs_anaisa
Messages postés6Date d'inscriptionjeudi 23 janvier 2003StatutMembreDernière intervention 9 octobre 2003
-
9 oct. 2003 à 15:35
cs_lrequena
Messages postés10Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention24 juillet 2008
-
18 mai 2005 à 15:56
bonjour tt le monde je chercherais à écrire une fonction donnant la representation bienaire d'un entier sous forme d une chaine de carctère! voici mon mon progrmme:
class Bianire{
public static void main(String[]arg){
char Binaire(int a=clavier.lireInt )
{
String res=' ';
while (a!=0){
if(a mod 2=0){
res= concat("0",res);
}else{
res=concat("1",res);
}
a=a/2;
}
return res;}
}}
class Test{
public static void main (String[]arg){
a=Clavier.lireInt();
a.Binaire;
System.out.print("res:"+res);
}
merci bien!
benohite
Messages postés210Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention18 décembre 20037 10 oct. 2003 à 09:44
bonjour,
il y a qqch qui cloche non.
Dans ta classe Binaire tu as bien une methode public static void main mais j ai l impression que tu as redefini dans cette methode une autre methode appellee Binaire ce qui ne me parait pas logique
je te mets si dessous lune petite correction
class Binaire
{
int a;
public Binaire(int nbreAConvertir)
{
this.a=nbreAConvertir;
}
public String convertirEntier()
{
String res=""';
while (a!=0)
{
if(a mod 2=0)
{
res= concat("0",res);
}
else
{
res=concat("1",res);
}
a=a/2;
}
return res;
}
}
public class Test
{
public static void main (String[]arg)
{
int nbreLu = Clavier.lireInt();
Binaire bin = new Binaire(nbreLu);
System.out.print("resultat:"+bin.convertirEntier(););
}
voila il me semble que c un peu mieux comme ca :-)
cs_lrequena
Messages postés10Date d'inscriptionmercredi 18 mai 2005StatutMembreDernière intervention24 juillet 2008 18 mai 2005 à 15:56
Je me suis amusé à réécrire une version statique des méthodes de conversion entier<> binaire... j'espere que ça pourra vous servir !
public final class Binaire {
public static String convertir(java.math.BigInteger nombre){
final java.math.BigInteger TWO=java.math.BigInteger.valueOf(2);
String str="";
while(nombre.compareTo(java.math.BigInteger.ZERO)!=0){
if((nombre.remainder(TWO)).compareTo(java.math.BigInteger.ZERO)==0){
str="0"+str;
}else{
str="1"+str;
}
nombre=nombre.divide(TWO);
}
return str;
}
public static java.math.BigInteger convertir(String binaire){
java.math.BigInteger bi=java.math.BigInteger.ZERO;
final int length=binaire.length()-1;
for(int i=length;i>-1;i--){
final int diff=length-i;
if(binaire.charAt(i)=='1'){
bi=bi.add(java.math.BigInteger.valueOf((long)Math.pow(2,diff)));
}
}
return bi;
}
}