알고리즘을 하면서 진수를 변환하는 문제를 만났다.
그러면서 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
*/
'Java' 카테고리의 다른 글
[Java] List와 Set, Map (0) | 2023.01.04 |
---|---|
[Java] 메서드 오버로딩 VS 메서드 오버라이딩 (0) | 2022.12.28 |
[JAVA] 필드와 메서드 (0) | 2022.12.26 |
[JAVA] 클래스와 객체 (0) | 2022.12.22 |
[Java] 문자가 숫자인지 문자인지 판단하기 (Character.isDigit(), Character.isLetter()) (0) | 2022.12.22 |
댓글