Integer.toBinaryString()

JayJi·2026년 4월 24일

알고리즘

목록 보기
2/30

관련 문제

문제난이도핵심
이진 변환 반복하기Lv.2toBinaryString 반복 적용
짝수와 홀수Lv.12진수 마지막 비트로 홀짝 판별
숫자의 표현Lv.2진수 변환 응용

1. 개념

Integer.toBinaryString()10진수 정수를 2진수 문자열로 변환하는 Java 내장 메서드다.

int n = 10;
String binary = Integer.toBinaryString(n);
System.out.println(binary);  // "1010"

String.valueOf()Integer.toString()처럼 숫자를 문자열로 바꾸는데, 2진수 형태로 바꿔준다는 점이 다르다.


2. 동작 과정

10을 2진수로 변환하는 과정

단계연산나머지 (2진수 자리)
110 ÷ 250
25 ÷ 221
32 ÷ 210
41 ÷ 201

나머지를 아래에서 위로 읽으면 1010. toBinaryString(10)의 결과와 같다.


3. 자주 쓰는 패턴

기본 변환

Integer.toBinaryString(0);   // "0"
Integer.toBinaryString(1);   // "1"
Integer.toBinaryString(10);  // "1010"
Integer.toBinaryString(255); // "11111111"

특정 자릿수 맞추기 (앞에 0 채우기)

toBinaryString()은 앞의 0을 생략한다. 자릿수를 맞춰야 할 때는 String.format()을 쓴다.

String binary = String.format("%8s", Integer.toBinaryString(10)).replace(' ', '0');
System.out.println(binary);  // "00001010"

2진수 → 다시 10진수

Integer.parseInt()의 두 번째 인자로 진수를 지정하면 된다.

String binary = Integer.toBinaryString(10);  // "1010"
int n = Integer.parseInt(binary, 2);         // 10

4. 핵심 포인트 2가지

반환값은 String이다

toBinaryString()int가 아닌 String을 반환한다. 그래서 비트 연산이 필요하면 다시 parseInt()로 변환해야 한다.

String binary = Integer.toBinaryString(10);
// binary.length() → 4 (문자열 길이)
// binary + "0"    → "10100" (문자열 이어붙이기)
// binary * 2      → ❌ 컴파일 에러

음수는 32비트 전체가 나온다

Java의 int는 32비트이기 때문에 음수를 넣으면 부호 비트까지 포함한 32자리가 출력된다.

Integer.toBinaryString(-1);
// "11111111111111111111111111111111" (32자리)

코테에서 음수를 다룰 일은 거의 없지만, 알고 있어야 실수를 안 한다.


5. 시간복잡도

연산시간복잡도비고
Integer.toBinaryString(n)O(log N)2진수 자릿수만큼 순회
Integer.parseInt(binary, 2)O(log N)문자열 길이만큼 순회

6. 주의사항

  • 반환값이 String이다. int로 착각해서 산술 연산 하려다 에러 나는 경우가 많다.
  • char 비교 시 '0', '1'을 써라. arr[i] == 0이 아니라 arr[i] == '0'이다. char 타입과 int 타입의 비교는 ASCII 값으로 비교되기 때문에 의도한 결과가 안 나온다.
  • 앞의 0은 생략된다. 자릿수를 맞춰야 하는 문제라면 String.format()으로 패딩해라.
  • 음수 주의. 음수를 넣으면 32자리 전체가 나온다.
profile
Java와 SpringBoot를 이용한 백엔드 개발자가 되려고 합니다.

0개의 댓글