Java에서 숫자를 이진수로 변환
이 게시물은 Java에서 숫자를 이진수로 변환하는 방법에 대해 설명합니다.
1. 내장 메소드 사용하기
Java에서 숫자를 이진수로 변환하는 표준 솔루션은 다음을 사용하는 것입니다. Integer.toBinaryString()
지정된 정수의 이진 표현을 문자열 형식으로 반환하는 메서드입니다.
1 2 3 4 5 6 7 8 9 10 11 |
class Main { public static void main(String[] args) { int n = 75; String binary = Integer.toBinaryString(n); System.out.println(binary); } } |
결과:
1001011
마찬가지로 다음을 사용하여 long으로 변환할 수 있습니다. Long.toBinaryString()
방법.
1 2 3 4 5 6 7 8 9 10 |
class Main { public static void main(String[] args) { long n = 75; String binary = Long.toBinaryString(n); System.out.println(binary); } } |
결과:
1001011
또는 다음을 사용할 수 있습니다. toString(i, r)
문자열 표현을 반환하는 메서드 i
기수에서 r
. 그러나 이것은 음수에 대해 의도한 대로 작동하지 않습니다.
1 2 3 4 5 6 7 8 9 10 |
class Main { public static void main(String[] args) { int n = 75; String binary = Integer.toString(n, 2); System.out.println(binary); } } |
결과:
1001011
정수의 이진 표현이 0으로 왼쪽으로 채워져야 하는 경우 에서 논의한 방법 중 하나를 사용할 수 있습니다. 이것 게시하다:
2. 나이브 솔루션
아래와 같이 숫자를 이진 형식으로 변환하는 사용자 지정 루틴을 작성할 수도 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
class Main { public static String toBinary(int n, int length) { StringBuilder binary = new StringBuilder(); for (long i = (1L << length - 1); i > 0; i = i / 2) { binary.append((n & i) != 0 ? "1" : "0"); } return binary.toString(); } public static void main(String[] args) { int n = 75; int length = 32; String binary = toBinary(n, length); System.out.println(binary); } } |
결과:
00000000000000000000000001001011
다음은 위 코드의 재귀 버전입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class Main { public static String toBinary(int n) { if (n == 0) { return ""; } return toBinary(n / 2) + (n % 2); } public static void main(String[] args) { int n = 75; int length = 32; String binary = String.format("%0" + length + "d", Integer.valueOf(toBinary(n))); System.out.println(binary); } } |
결과:
00000000000000000000000001001011
Java에서 숫자를 이진수로 변환하는 것입니다.