본문 바로가기
Java

[Java] Integer 클래스의 메서드를 이용해 숫자 진수 변환

by Bhinney 2023. 1. 28.

알고리즘을 하면서 진수를 변환하는 문제를 만났다.

그러면서 Integer 클래스에 진수를 변환할 수 있는 메서드가 있다는 것을 알았다.

그래서 해당 메서드를 정리해보려고 한다.


1️⃣ Integer.toString(int num, int radix) 

  • 해당 메서드는 숫자 num을 radix 진수값으로 변환시켜주는 메서드
  • 음수는 음수의 값으로 양수는 양수의 값으로 변환시켜준다.
  • cf) Integer.toString(int num) 은 num을 문자열로 변환
int num1 = 777;
System.out.println("toString(int num1) : " + Integer.toString(num1));
System.out.println("toString(int num1, 2) : " + Integer.toString(num1, 2));

int num2 = -777;
System.out.println("toString(int num2) : " + Integer.toString(num2));
System.out.println("toString(int num2, 2) : " + Integer.toString(num2,2));

/*
toString(int num1) : 777
toString(int num1, 2) : 1100001001
toString(int num2) : -777
toString(int num2, 2) : -1100001001
*/

 


 

2️⃣ Integer.toUnsignedString()

  • 부호 없는 10진수 값으로 반환
  • 음수가 입력되면, 음수가 아닌 양수로 반환
  • 아래의 출력 차이를 확인하면 좋다.
int num1 = 777;
System.out.println("toUnsignedString(int num1) : " + Integer.toUnsignedString(num1));
System.out.println("toUnsignedString(int num1, 2) : " + Integer.toUnsignedString(num1,2))

int num2 = -777;
System.out.println("toUnsignedString(int num2) : " + Integer.toUnsignedString(num2));
System.out.println("toUnsignedString(int num2, 2) : " + Integer.toUnsignedString(num2,2)); 

/*
toUnsignedString(int num1) : 777
toUnsignedString(int num1, 2) : 1100001001
toUnsignedString(int num2) : 4294966519
toUnsignedString(int num2, 2) : 11111111111111111111110011110111
*/

3️⃣ Integer.toHexString() 

  • 16진수로 변환
  • 음수가 입력되면, 음수가 아닌 양수로 반환
  • 아래의 출력 차이를 확인하면 좋다.
int num1 = 777;
System.out.println("toHexString(int num1) : " + Integer.toHexString(num1));

int num2 = -777;
System.out.println("toHexString(int num2) : " + Integer.toHexString(num2));

/*
toHexString(int num1) : 309
toHexString(int num2) : fffffcf7
*/

4️⃣ Integer.toOctalString() 

  • 8진수로 변환
  • 음수가 입력되면, 음수가 아닌 양수로 반환
  • 아래의 출력 차이를 확인하면 좋다.
int num1 = 777;
System.out.println("toOctalString(int num1) : " + Integer.toOctalString(num1));

int num2 = -777;
System.out.println("toOctalString(int num2) : " + Integer.toOctalString(num2)); 

/*
toOctalString(int num1) : 1411
toOctalString(int num2) : 37777776367
*/

 

댓글