Преобразование десятичной в двоичную Java

Я пытаюсь преобразовать десятичные числа в двоичные числа из ввода пользователя с помощью Java.

Я получаю ошибки.

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(remainder); { return null; } } } 

Как преобразовать Decimal в Binary в Java?

    Ваш метод binaryForm попадает в бесконечную рекурсию, вам нужно вернуться, если 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); } } 

    Integer.toBinaryString() – встроенный метод и будет работать очень хорошо.

     Integer.toString(n,8) // decimal to octal Integer.toString(n,2) // decimal to binary Integer.toString(n,16) //decimal to Hex 

    где n = десятичное число.

     /** * @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; } 

    Я просто хочу добавить, для тех, кто использует:

      String x=Integer.toBinaryString() 

    получить строку двоичных чисел и хочет преобразовать эту строку в int. Если вы используете

      int y=Integer.parseInt(x) 

    вы получите ошибку NumberFormatException.

    То, что я сделал для преобразования String x в integers, сначала преобразовал каждый отдельный Char в String x в один Char в цикле for.

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

    Затем я преобразовал каждый Char обратно в отдельную строку,

      String u=String.valueOf(t); 

    затем Разделите каждую строку в целое.

    Идентификатор id Id отправляет это, потому что я взял время, чтобы выяснить, как получить двоичный код, такой как 01010101, в форму Integer.

     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); } } в 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); } } 

    Если вы хотите отменить вычисленную двоичную форму, вы можете использовать class StringBuffer и просто использовать метод reverse (). Вот пример программы, которая объяснит его использование и вычислит двоичный файл

    public class Binary {

     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 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 Main {

     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); } 

    }

    Двоичный до десятичного без использования Integer.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); ; } } в 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); ; } } 

    Вывод:

    Введите двоичный номер:

    1010

    Двоичный = 1010 Десятичный = 10


    Binary to Decimal с использованием Integer.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)); } } 

    Вывод:

    Введите двоичный номер:

    1010

    Результат: 10

    Довольно простая, чем эффективная программа , но она выполняет эту работу.

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

    Следующий преобразует десятичный код в двоичный с временной сложностью: O (n) Линейное время и без какой-либо встроенной функции java

     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()); } 

    В C #, но это то же самое, что и в 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); } 

    Это может показаться глупым, но если вы хотите попробовать функцию полезности

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

    должен быть какой-то метод утилиты, чтобы сделать это напрямую, я не могу вспомнить.

     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; } } 

    Я просто решил это сам, и я хотел поделиться своим ответом, потому что он включает двоичный разворот, а затем преобразование в десятичное. Я не очень опытный кодер, но, надеюсь, это будет полезно для кого-то другого.

    То, что я сделал, было толкать двоичные данные в стек, когда я его конвертировал, а затем вытолкнул его, чтобы отменить его и преобразовать обратно в десятичную.

     import java.util.Scanner; import java.util.Stack; public class ReversedBinary { private Stack 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()); } } } } в import java.util.Scanner; import java.util.Stack; public class ReversedBinary { private Stack 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()); } } } } в import java.util.Scanner; import java.util.Stack; public class ReversedBinary { private Stack 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()); } } } } 

    Вы можете использовать концепцию Wrapper Classes для прямого преобразования десятичной дробной в двоичную, шестнадцатеричную и восьмеричную. Below – очень простая программа для преобразования десятичных чисел в обратный двоичный файл. Надеемся, что это вносит свой вклад в ваше знание Java

     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 } } 
     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); } } в 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); } } 

    Это очень простая процедура, я получил это после того, как поставил общую процедуру на бумаге.

     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 } } } } в 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 } } } } 
     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()); } в 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()); } 
     //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; } в //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; } 

    Одно из самых быстрых решений:

     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; } в 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; } 

    Еще лучше с StringBuilder, используя insert () перед строкой десятичной строки, не вызывающей reverse (),

     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(); } 

    Ну, вы можете использовать цикл while, например,

     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(); } } 

    Вы можете ссылаться на пример ниже для некоторого хорошего объяснения,

    преобразовать десятичный код в двоичный пример.

    Все ваши проблемы могут быть решены с помощью одного лайнера! Чтобы включить мое решение в ваш проект, просто удалите binaryform(int number) и замените System.out.print(binaryform(number)); с System.out.println(Integer.toBinaryString(number)); ,

    Нет необходимости в каких-либо встроенных функциях java. Простая recursion.

     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; } } 

    Вот преобразование десятичного в двоичный файл тремя различными способами

     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)); } } , 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)); } } 
      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); 
    Interesting Posts

    Как вернуться на предыдущую страницу

    Итак, каково правильное направление косой черты (/ или \) под Windows?

    Отключение функциональных клавиш в Windows 8 с помощью Autohotkey

    Заменить значение в кадре данных на основе условного (`if`) оператора

    Уникальный ключ с первым кодом EF

    Обновление неподлинной Windows 7 до Windows 10 с полным ключом розничной торговли

    Как показать данные JRBeanCollectionDataSource с помощью компонента Table?

    «Нестатическая переменная, на которую нельзя ссылаться из статического контекста» при создании объекта

    jQuery или CSS-селектор, чтобы выбрать все идентификаторы, начинающиеся с некоторой строки

    вид бритвы с classом модели анонимного типа. Возможно?

    Агент SSH теряет идентификатор во время перезагрузки машины

    Как остановить Wpf Tabcontrol, чтобы выгрузить визуальное дерево при изменении табуляции

    Безопасная загрузка для Linux?

    Явное построение типа объекта ‘###’ в запросе недопустимо.

    Отключить главную кнопку в Android ICS (4.0)

    Давайте будем гением компьютера.