[java] Java에서 int를 이진 문자열 표현으로 변환 하시겠습니까?

Java에서 int를 이진 문자열 표현으로 변환하는 가장 좋은 방법은 무엇입니까?

예를 들어, int가 156이라고 가정하십시오. 이진 문자열 표현은 “10011100”입니다.



답변

Integer.toBinaryString(int i)


답변

도있다 java.lang.Integer.toString (INT I, INT베이스) 더 적합 할 것입니다 방법은, 2 (바이너리)가 아닌 다른 코드의 힘 하루 핸들 기지의 경우.


답변

public static string intToBinary(int n)
{
    string s = "";
    while (n > 0)
    {
        s =  ( (n % 2 ) == 0 ? "0" : "1") +s;
        n = n / 2;
    }
    return s;
}


답변

사용하여 더 방법 – 하나 java.lang.Integer의를 첫 번째 인수의 캐릭터 라인 표현을 얻을 수 iradix (Octal - 8, Hex - 16, Binary - 2)2 번째의 인수로 지정했습니다.

 Integer.toString(i, radix)

예_

private void getStrtingRadix() {
        // TODO Auto-generated method stub
         /* returns the string representation of the
          unsigned integer in concern radix*/
         System.out.println("Binary eqivalent of 100 = " + Integer.toString(100, 2));
         System.out.println("Octal eqivalent of 100 = " + Integer.toString(100, 8));
         System.out.println("Decimal eqivalent of 100 = " + Integer.toString(100, 10));
         System.out.println("Hexadecimal eqivalent of 100 = " + Integer.toString(100, 16));
    }

산출_

Binary eqivalent of 100 = 1100100
Octal eqivalent of 100 = 144
Decimal eqivalent of 100 = 100
Hexadecimal eqivalent of 100 = 64


답변

public class Main  {

   public static String toBinary(int n, int l ) throws Exception {
       double pow =  Math.pow(2, l);
       StringBuilder binary = new StringBuilder();
        if ( pow < n ) {
            throw new Exception("The length must be big from number ");
        }
       int shift = l- 1;
       for (; shift >= 0 ; shift--) {
           int bit = (n >> shift) & 1;
           if (bit == 1) {
               binary.append("1");
           } else {
               binary.append("0");
           }
       }
       return binary.toString();
   }

    public static void main(String[] args) throws Exception {
        System.out.println(" binary = " + toBinary(7, 4));
        System.out.println(" binary = " + Integer.toString(7,2));
    }
}


답변

이것은 몇 분 전에 쓴 것입니다. 그것이 도움이되기를 바랍니다!

public class Main {

public static void main(String[] args) {

    ArrayList<Integer> powers = new ArrayList<Integer>();
    ArrayList<Integer> binaryStore = new ArrayList<Integer>();

    powers.add(128);
    powers.add(64);
    powers.add(32);
    powers.add(16);
    powers.add(8);
    powers.add(4);
    powers.add(2);
    powers.add(1);

    Scanner sc = new Scanner(System.in);
    System.out.println("Welcome to Paden9000 binary converter. Please enter an integer you wish to convert: ");
    int input = sc.nextInt();
    int printableInput = input;

    for (int i : powers) {
        if (input < i) {
            binaryStore.add(0);
        } else {
            input = input - i;
            binaryStore.add(1);
        }
    }

    String newString= binaryStore.toString();
    String finalOutput = newString.replace("[", "")
            .replace(" ", "")
            .replace("]", "")
            .replace(",", "");

    System.out.println("Integer value: " + printableInput + "\nBinary value: " + finalOutput);
    sc.close();
}   

}


답변

정수를 이진수로 변환 :

import java.util.Scanner;

public class IntegerToBinary {

    public static void main(String[] args) {

        Scanner input = new Scanner( System.in );

        System.out.println("Enter Integer: ");
        String integerString =input.nextLine();

        System.out.println("Binary Number: "+Integer.toBinaryString(Integer.parseInt(integerString)));
    }

}

산출:

정수 입력 :

10

이진수 : 1010