Estoy tratando de convertir de decimal a binario los números de la entrada del usuario mediante Java.

Estoy recibiendo errores.

package reversedBinary;
import java.util.Scanner;

public class ReversedBinary {


public static void main(String[] args) {
    int number; 

    Scanner in = new Scanner(System.in);

    System.out.println("Enter a positive integer");
    number=in.nextInt();

    if (number <0)
        System.out.println("Error: Not a positive integer");
    else { 

        System.out.print("Convert to binary is:");
        System.out.print(binaryform(number));
}

}

private static Object binaryform(int number) {
    int remainder;

    if (number <=1) {
        System.out.print(number);

    }

    remainder= number %2; 
    binaryform(number >>1);
    System.out.print(remainder);

    { 
    return null;
} } }

¿Cómo puedo convertir de Decimal a Binario en Java?

  • Si ve errores, usted querrá compartir con nosotros.
  • De largo.toBinaryString(el Doble.doubleToRawLongBits(d)); la Referencia stackoverflow.com/questions/6359847/…
  • Por alguna razón, se compila, pero no veo que imprima la forma binaria @[email protected] parece Que aquí por alguna razón: Ingrese un entero positivo 2 Convertir a binario es:1000000 (para siempre ceros..) Excepción en el thread «main» java.lang.StackOverflowError en java.io.PrintStream.escribir(Unknown Source) at java.io.PrintStream.de impresión(Fuente Desconocida) en reversedBinary.ReversedBinary.binaryform(ReversedBinary.java:30) en reversedBinary.ReversedBinary.binaryform(ReversedBinary.java:36) en
  • Posibles duplicados de la Conversión de un entero a una cadena binaria de representación en Java?
  • No hay ningún decimal aquí. La entrada ya es binario. Todo lo que estamos haciendo es cambiar la representación, probablemente a ASCII. Claro lo que estás preguntando.
  • La solución más simple sería construido en el método mencionado en este enlace

InformationsquelleAutor Euridice01 | 2013-02-09

28 Comentarios

  1. 11

    Su binaryForm método es quedar atrapado en una recursividad infinita, usted necesita para volver si number <= 1:

    import java.util.Scanner;
    
    public class ReversedBinary {
    
        public static void main(String[] args) {
            int number;
    
            Scanner in = new Scanner(System.in);
    
            System.out.println("Enter a positive integer");
            number = in.nextInt();
    
            if (number < 0) {
                System.out.println("Error: Not a positive integer");
            } else {
    
                System.out.print("Convert to binary is:");
                //System.out.print(binaryform(number));
                printBinaryform(number);
            }
        }
    
        private static void printBinaryform(int number) {
            int remainder;
    
            if (number <= 1) {
                System.out.print(number);
                return; //KICK OUT OF THE RECURSION
            }
    
            remainder = number % 2;
            printBinaryform(number >> 1);
            System.out.print(remainder);
        }
    }
    • Gracias!!! También, me di cuenta de que si puedo agregar el retorno nulo para salir del bucle. SI, por ejemplo, he entrado 2 para convertir a binario, el resultado es 10null…. Que existe un nulo allí y cómo puedo solucionarlo?
    • No hay problema. Aviso que va a imprimir el valor de binaryForm(number), cuando se termina, null se devuelve. Usted necesita para hacer un Object, establezca su valor a binaryForm(number) y, a continuación, sólo se imprime si el valor no es null.
    • Me podría dar un ejemplo?
    • Es quedar atrapado en un infinito la recursividad, no es un bucle infinito.
    • Bueno tengo que trabajar. Ahora, estoy teniendo problemas para revertir número binario para llegar a decimal. Alguna idea? 🙁
    • De manera abstracta, esto es un bucle, implementado con recursividad. Sin embargo, cuando se utiliza un lenguaje con construcciones de bucle como for y while, la distinción es más importante, he corregido mi post.
    • Si desea un ejemplo de uso de instrucciones if en Java, consulte la documentación de Oracle: docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html
    • stackoverflow.com/questions/14790568/…
    • No hay ninguna razón para que este método devuelve nada, ya que su trabajo es de impresión.
    • esta respuesta no puede trabajar por un número negativo.
    • Y, finalmente, este código no se puede convertir de decimal a binario. Convierte de binario a ASCII representación de binario.

  2. 73

    Integer.toBinaryString() es un método y va a hacer muy bien.

    • cabe señalar que el líder 0s son eliminados de las salidas.
    • Cero a la izquierda(s) se conoce como maniquí de bits. No habrá ninguna diferencia en el valor real en absoluto, y usted puede poner a cero tanto como usted desea. por ejemplo: – binario de 111 o 00111 le dará a usted mismo número decimal 7.
    • claro y conciso +1
  3. 35
    Integer.toString(n,8) //decimal to octal
    
    Integer.toString(n,2) //decimal to binary
    
    Integer.toString(n,16) //decimal to Hex

    donde n = número decimal.

    • es allí una manera de conseguir la binary string en un número fijo de bits como, decimal 8 en 8bit binario que 00001000
    • Concatenar sólo String bin = "00000000" + Integer.toString(n,2) luego subcadena la longitud deseada bin.substring(0,8)
    • después de la subcadena de nuevo 00000000 viene ya que esta es la concatenación de Strings. el resultado de la Integer.toString(n,2) obtener anexa después de la 00000000?
    • Ninguno de estos métodos convierte el decimal a cualquier cosa. Todos ellos convertir a binario los números enteros a algo más.
  4. 5
    /**
     * @param no
     *            : Decimal no
     * @return binary as integer array
     */
    public int[] convertBinary(int no) {
        int i = 0, temp[] = new int[7];
        int binary[];
        while (no > 0) {
            temp[i++] = no % 2;
            no /= 2;
        }
        binary = new int[i];
        int k = 0;
        for (int j = i - 1; j >= 0; j--) {
            binary[k++] = temp[j];
        }
    
        return binary;
    }
    • Esto convierte un entero binario a una matriz de enteros que contiene 0 o 1. No decimal a binario. No lo que se le pidió.
  5. 5

    Solo quiero añadir, para cualquier persona que utiliza:

       String x=Integer.toBinaryString()

    para obtener una Cadena de números Binarios y quiere convertir la cadena en un int. Si utiliza

      int y=Integer.parseInt(x)

    obtendrá un NumberFormatException error.

    Lo que hice para convertir la Cadena de x en números Enteros, se convirtió primero de cada individuo Char en la Cadena de x a un único carácter en un bucle for.

      char t = (x.charAt(z));

    Luego convirtió cada nuevo Char en una Cadena individuales,

      String u=String.valueOf(t);

    a continuación se Analiza cada una Cadena en un Entero.

    De identificación de la figura de Identificación de este post, porque me tomé un tiempo para averiguar cómo obtener un binario como 01010101 en Entero formulario.

    • Inesperada joya en un lugar inesperado!
  6. 3
    public static void main(String h[])
    {
        Scanner sc=new Scanner(System.in);
        int decimal=sc.nextInt();
    
        String binary="";
    
        if(decimal<=0)
        {
            System.out.println("Please Enter more than 0");
    
        }
        else
        {
            while(decimal>0)
            {
    
                binary=(decimal%2)+binary;
                decimal=decimal/2;
    
            }
            System.out.println("binary is:"+binary);
    
        }
    
    }
    • No hay números decimales aquí, y no decimal a binario conversión. Todo lo que están haciendo es convertir a binario binario. Bastante inútil.
    • degug el código de arriba primero..se va a obtener la entrada de la línea de comandos como número decimal..visto Escáner de clase que se usa para este
  7. 1

    Los siguientes convierte el decimal a Binario con el Tiempo la Complejidad : O(n) Tiempo Lineal y con cualquier java incorporado la función de

    private static int decimalToBinary(int N) {
        StringBuilder builder = new StringBuilder();
        int base = 2;
        while (N != 0) {
            int reminder = N % base;
            builder.append(reminder);
            N = N / base;
        }
    
        return Integer.parseInt(builder.reverse().toString());
    }
  8. 0

    Si desea invertir el valor calculado de forma binaria , puede utilizar la clase StringBuffer y sólo tiene que utilizar el método reverse (). Aquí está un ejemplo de programa que va a explicar su uso y calcular el binario

    clase pública Binario {

    public StringBuffer calculateBinary(int number){
        StringBuffer sBuf = new StringBuffer();
        int temp=0;
        while(number>0){
            temp = number%2;
            sBuf.append(temp);
            number = number / 2;
        }
        return sBuf.reverse();
    }   

    }

    public class Principal {

    public static void main(String[] args) throws IOException {
        System.out.println("enter the number you want to convert");
        BufferedReader bReader = new   BufferedReader(newInputStreamReader(System.in));
        int number = Integer.parseInt(bReader.readLine());
    
        Binary binaryObject = new Binary();
        StringBuffer result = binaryObject.calculateBinary(number);
        System.out.println(result);
    }

    }

    • Tenga en cuenta que si usted quiere que su código de formato de código y no como texto tendrá que anteponer con cuatro espacios.
    • Esto convierte un entero binario, no es un número decimal.
  9. 0

    Puede parecer una tontería , pero si te quieres probar función de utilidad de

    System.out.println(Integer.parseInt((Integer.toString(i,2))));

    debe haber algún método de utilidad para hacerlo directamente, no puedo recordar.

    • Usted no puede recordar que, en caso de que esta no es una respuesta, o sólo has publicado, en el que caso de que su respuesta es auto-contradictoria. Que es?
    • El método anterior se acaba de resolver el propósito , pero su clase de manera divertida para hacerlo, pero de nuevo su sencillo también. Y podría haber algún método de utilidad (ready made método de la api de java), que no estoy seguro.
    • Esto convierte un entero binario, no es un número decimal.
  10. 0

    Binario a Decimal sin usar Entero.ParseInt():

    import java.util.Scanner;
    
    //convert binary to decimal number in java without using Integer.parseInt() method.
    
    public class BinaryToDecimalWithOutParseInt {
    
        public static void main(String[] args) {
    
            Scanner input = new Scanner( System.in );
            System.out.println("Enter a binary number: ");
    
            int  binarynum =input.nextInt();
            int binary=binarynum;
    
            int decimal = 0;
            int power = 0;
    
            while(true){
    
                if(binary == 0){
    
                    break;
    
                } else {
    
                    int temp = binary%10;
                    decimal += temp*Math.pow(2, power);
                    binary = binary/10;
                    power++;
    
                }
            }
            System.out.println("Binary="+binarynum+" Decimal="+decimal); ;
        }
    
    }

    De salida:

    Introduzca un número binario:

    1010

    Binario=1010 Decimal=10


    Binario a Decimal usando Entero.parseInt():

    import java.util.Scanner;
    
    //convert binary to decimal number in java using Integer.parseInt() method.
    public class BinaryToDecimalWithParseInt {
    
        public static void main(String[] args) {
    
            Scanner input = new Scanner( System.in );
    
            System.out.println("Enter a binary number: ");
            String binaryString =input.nextLine();
    
            System.out.println("Result: "+Integer.parseInt(binaryString,2));
    
        }
    
    }

    De salida:

    Introduzca un número binario:

    1010

    Resultado: 10

  11. 0

    Bastante simple de la eficiencia de la programa, sin embargo, se hace el trabajo.

            Scanner sc = new Scanner(System.in);
            System.out.println("Give me my binaries");
            int str = sc.nextInt(2);
            System.out.println(str);
  12. 0

    Todos tus problemas pueden ser resueltos con una sola línea!
    Incorporar mi solución a su proyecto, simplemente quite la binaryform(int number) método, y reemplazar System.out.print(binaryform(number)); con System.out.println(Integer.toBinaryString(number));.

    • Bienvenido a Desbordamiento de Pila. Por favor, considere la posibilidad de agregar una explicación a su respuesta.
    • La pregunta es acerca de la conversión de decimal a binario, y usted no ha respondido.
    • Creo que mi respuesta original hizo el trabajo, pero era ciertamente complicado. He actualizado mi respuesta.
  13. 0
    public static void converToBinary(int dec)
    {
        String str = "";
        while(dec!=0)
        {
            str = str + Integer.toString(dec%2);
            dec = dec/2;
        }
        System.out.println(new StringBuffer(str).reverse().toString());
    }
  14. 0
    /**
     * converting decimal to binary
     *
     * @param n the number
     */
    private static void toBinary(int n) {
        if (n == 0) {
            return; //end of recursion
        } else {
            toBinary(n / 2);
            System.out.print(n % 2);
        }
    }
    
    /**
     * converting decimal to binary string
     *
     * @param n the number
     * @return the binary string of n
     */
    private static String toBinaryString(int n) {
        Stack<Integer> bits = new Stack<>();
        do {
            bits.push(n % 2);
            n /= 2;
        } while (n != 0);
    
        StringBuilder builder = new StringBuilder();
        while (!bits.isEmpty()) {
            builder.append(bits.pop());
        }
        return builder.toString();
    }

    O puede utilizar Integer.toString(int i, int radix)

    e.g:(Convertir 12 binarios)

    Integer.toString(12, 2)
  15. -1

    En C# , pero es el mismo como en Java :

    public static void findOnes2(int num)
    {
        int count = 0;      //count 1's 
        String snum = "";   //final binary representation
        int rem = 0;        //remainder
    
        while (num != 0)
        {
            rem = num % 2;           //grab remainder
            snum += rem.ToString();  //build the binary rep
            num = num / 2;
            if (rem == 1)            //check if we have a 1 
                count++;             //if so add 1 to the count
        }
    
        char[] arr = snum.ToCharArray();
        Array.Reverse(arr);
        String snum2 = new string(arr);
        Console.WriteLine("Reporting ...");
        Console.WriteLine("The binary representation :" + snum2);
        Console.WriteLine("The number of 1's is :" + count);
    }
    
    public static void Main()
    {
        findOnes2(10);
    }
    • Esto convierte un entero binario, no es un número decimal.
  16. -1
    public class BinaryConvert{ 
    
        public static void main(String[] args){
            System.out.println("Binary Result: "+ doBin(45));
        }
    
        static String doBin(int n){
            int b = 2;
            String r = "";
            String c = "";
    
            do{
                c += (n % b);
                n /= b;         
            }while(n != 0);
    
            for(int i = (c.length() - 1); i >=0; i--){
                r += c.charAt(i);
            }
    
            return r;
        }
    }
    • Esto convierte un entero binario, no es un número decimal.
  17. -1

    Me acaba de resolver esto por mí mismo, y yo quería compartir mi respuesta, porque incluye el binario de inversión y, a continuación, la conversión a decimal. No soy un experimentado programador pero espero que esto le sea útil a alguien más.

    Yo lo que hice fue empujar a los datos binarios en una pila como yo era la conversión, y luego de estallar fuera a dar marcha atrás y volver a convertir decimal.

    import java.util.Scanner;
    import java.util.Stack;
    public class ReversedBinary 
    {
    private Stack<Integer> st;
    public ReversedBinary()
    {
    st = new Stack<>();
    }
    private int decimaltoBinary(int dec)
    {
    if(dec == 0 || dec == 1)
    {
    st.push(dec % 2);
    return dec;
    }
    st.push(dec % 2);
    dec = decimaltoBinary(dec / 2);        
    return dec;
    }
    private int reversedtoDecimal()
    {
    int revDec = st.pop();
    int i = 1;
    while(!st.isEmpty())
    {
    revDec += st.pop() * Math.pow(2, i++);
    }
    return revDec;
    }
    public static void main(String[] args)
    {
    ReversedBinary rev = new ReversedBinary();
    System.out.println("Please enter a positive integer:");
    Scanner sc = new Scanner(System.in);
    while(sc.hasNextLine())
    {
    int input = Integer.parseInt(sc.nextLine());
    if(input < 1 || input > 1000000000)
    {
    System.out.println("Integer must be between 1 and 1000000000!");
    }
    else
    {
    rev.decimaltoBinary(input);
    System.out.println("Binary to reversed, converted to decimal: " + rev.reversedtoDecimal());
    }
    }
    }
    }
    • Esto convierte un entero binario, no es un número decimal.
  18. -1

    Puede utilizar el concepto de Clases de Contenedor directamente convertir un número decimal a binario,hexadecimal y octal.A continuación es un programa muy simple para convertir de decimal a binario inverso .Espero que contribuye a su java conocimientos

    public class decimalToBinary
    {
    public static void main(String[] args)
    {
    int a=43;//input
    String string=Integer.toBinaryString(a);  //decimal to binary(string)
    StringBuffer buffer = new StringBuffer(string);  //string to binary
    buffer.reverse(); //reverse of string buffer
    System.out.println(buffer);  //output as string
    }
    }   
    • Esto convierte un entero binario, no es un número decimal.
  19. -1
    import java.util.*;
    public class BinaryNumber 
    {
    public static void main(String[] args)
    {
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter the number");
    int n = scan.nextInt();
    int rem;
    int num =n; 
    String str="";
    while(num>0)
    {
    rem = num%2;
    str = rem + str;
    num=num/2;
    }
    System.out.println("the bunary number for "+n+" is : "+str);
    }
    }
    • Scanner.nextInt() convierte el decimal a binario. El resto de esto hace algo más.
  20. -1

    Este es un procedimiento básico, tengo este después de la colocación de un procedimiento general en el papel.

    import java.util.Scanner;
    public class DecimalToBinary {
    public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter a Number:");
    int number = input.nextInt();
    while(number!=0)
    {
    if(number%2==0) 
    {
    number/=2;
    System.out.print(0);//Example: 10/2 = 5     -> 0
    }
    else if(number%2==1) 
    {
    number/=2;
    System.out.print(1);//5/2 = 2              -> 1
    }
    else if(number==2)
    {
    number/=2;
    System.out.print(01);//2/2 = 0             -> 01   ->0101
    }
    }
    }
    }
    • Esto convierte un entero binario, no es un número decimal.
  21. -1
    public static void main(String[] args)
    {
    Scanner in =new Scanner(System.in);
    System.out.print("Put a number : ");
    int a=in.nextInt();
    StringBuffer b=new StringBuffer();
    while(a>=1)
    {
    if(a%2!=0)
    {
    b.append(1);
    }
    else if(a%2==0)
    {
    b.append(0);
    }
    a /=2;
    }
    System.out.println(b.reverse());
    }
    • Scanner.nextInt() convierte el decimal a binario. El resto de esto hace algo más.
  22. -1
    //converts decimal to binary string
    String convertToBinary(int decimalNumber){  
    String binary="";
    while(decimalNumber>0){
    int remainder=decimalNumber%2;
    //line below ensures the remainders are reversed
    binary=remainder+binary;
    decimalNumber=decimalNumber/2;
    }
    return binary;
    }
    • Por favor, considere la posibilidad de agregar una explicación a su respuesta.
    • Esto convierte un entero binario, no es un número decimal.
  23. -1

    Una de las soluciones más rápido:

    public static long getBinary(int n)
    {
    long res=0;
    int t=0;
    while(n>1)
    {
    t= (int) (Math.log(n)/Math.log(2));
    res = res+(long)(Math.pow(10, t));
    n-=Math.pow(2, t);
    }
    return res;
    }
    • Esto convierte un entero binario, no es un número decimal.
  24. -1

    Aún mejor con StringBuilder uso de insert() delante de la coma decimal cadena en construcción, sin llamar a la inversa(),

    static String toBinary(int n) {
    if (n == 0) {
    return "0";
    }
    StringBuilder bldr = new StringBuilder();
    while (n > 0) {
    bldr = bldr.insert(0, n % 2);
    n = n / 2;
    }
    return bldr.toString();
    }
    • Leer el original de las preguntas cuidadosamente, no sólo el título del post. La pregunta original clearyly declaró con ejemplo de como convertir un entero decimal a binario. Sistema.a cabo.println(«Introduzca un número entero positivo»); numero = en.nextInt();
  25. -1

    Bien, puede utilizar el bucle while, como este,

    import java.util.Scanner;
    public class DecimalToBinaryExample
    {
    public static void main(String[] args)
    {
    int num;
    int a = 0;
    Scanner sc = new Scanner(System.in);
    System.out.println("Please enter a decimal number : ");
    num = sc.nextInt();
    int binary[] = new int[100];
    while(num != 0)
    {
    binary[a] = num % 2;
    num = num / 2;
    a++;
    }
    System.out.println("The binary value is : ");
    for(int b = a - 1; b >= 0; b--)
    {
    System.out.println("" + binary[b]);
    }
    sc.close();
    }
    }

    Puede consultar el ejemplo a continuación para algunos buena explicación,

    convertir de decimal a binario ejemplo.

    • Esto convierte un entero binario, no es un número decimal.
  26. -2

    Sin la necesidad de java incorporado funciones. Simple recursividad va a hacer.

    public class DecimaltoBinaryTest {
    public static void main(String[] args) {
    DecimaltoBinary decimaltoBinary = new DecimaltoBinary();
    System.out.println("hello " + decimaltoBinary.convertToBinary(1000,0));
    }
    }
    class DecimaltoBinary {
    public DecimaltoBinary() {
    }
    public int convertToBinary(int num,int binary) {
    if (num == 0 || num == 1) {
    return num;
    } 
    binary = convertToBinary(num / 2, binary);
    binary = binary * 10 + (num % 2);
    return binary;
    }
    }
    • Esto convierte un entero binario, no es un número decimal.
  27. -2

    Aquí es la conversión de Decimal a Binario en tres formas diferentes

    import java.util.Scanner;
    public static Scanner scan = new Scanner(System.in);
    public static void conversionLogical(int ip){           ////////////My Method One 
    String str="";
    do{
    str=ip%2+str;
    ip=ip/2;
    }while(ip!=1);
    System.out.print(1+str);
    }
    public static void byMethod(int ip){                /////////////Online Method
    //Integer ii=new Integer(ip);
    System.out.print(Integer.toBinaryString(ip));
    }
    public static String recursion(int ip){             ////////////Using My Recursion
    if(ip==1)
    return "1";
    return (DecToBin.recursion(ip/2)+(ip%2));
    }
    public static void main(String[] args) {            ///Main Method
    int ip;         
    System.out.println("Enter Positive Integer");
    ip = scan.nextInt();
    System.out.print("\nResult 1 = ");  
    DecToBin.conversionLogical(ip);
    System.out.print("\nResult 2 = ");
    DecToBin.byMethod(ip);
    System.out.println("\nResult 3 = "+DecToBin.recursion(ip));
    }
    }
    • Esto convierte un entero binario, no es un número decimal.
  28. -2
        int n = 13;
    String binary = "";
    //decimal to binary
    while (n > 0) {
    int d = n & 1;
    binary = d + binary;
    n = n >> 1;
    }
    System.out.println(binary);
    //binary to decimal
    int power = 1;
    n = 0;
    for (int i = binary.length() - 1; i >= 0; i--) {
    n = n + Character.getNumericValue(binary.charAt(i)) * power;
    power = power * 2;
    }
    System.out.println(n);
    • Hola brahmananda Kar, y gracias por la pregunta. Sin embargo, recuerde que usted es la publicación de una nueva respuesta a una pregunta que ha existido por algún tiempo ya, y ha aplaudido respuestas. Para hacer el tuyo valioso en este contexto, usted necesita para hacer de muy alta calidad; recomiendo un editar para añadir alguna explicación de por qué este enfoque es mejor que los de las otras respuestas.
    • Esto convierte un entero binario, no es un número decimal.

Dejar respuesta

Please enter your comment!
Please enter your name here