한 걸음 두 걸음

자바 JAVA ] 10진수 <-> 16진수 변환 / Integer.toHexString / Integer.parseInt 본문

Language/Java

자바 JAVA ] 10진수 <-> 16진수 변환 / Integer.toHexString / Integer.parseInt

언제나 변함없이 2020. 4. 30. 23:32
반응형

요약

10진수 -> 16진수 String : Integer.toHexString(13);
16진수 -> 10진수 int : Integer.parseInt("d",16);


java.lang패키지에 있는 Integer클래스는
10진수 값을 16진수로 바꾸고 16진수를 10진수로 바꿔주는 함수를 지원한다.

10진수 -> 16진수 String

static String toHexString(int i)
매개변수로 들어온 i값을 양수 16진수로 String값으로 바꾸어 반환한다.

사용예시

    Integer.toHexString(13); // d

16진수에서 10 = a 11 = b 12 = c 13 = d 14 = e 15 = f 16 = 11이므로
13을 입력하면 "d"가 반환된다.

참고로 10진수 -> 2진수(toBinaryString​) 8진수(toOctalString) 변환도 있다.

16진수 -> 10진수 int

반대로, 16진수를 10진수로 변경하려면
static int parseInt(String s, int radix) 함수를 써야한다.
radix진수인 s값을 10진수 int로 반환한다.

사용예시

    Integer.parseInt("d",16); //13

16진수인 d를 10진수로 바꿔서 반환한다.

더 많은 예시
parseInt("0", 10) returns 0
parseInt("473", 10) returns 473
parseInt("+42", 10) returns 42
parseInt("-0", 10) returns 0
parseInt("-FF", 16) returns -255
parseInt("1100110", 2) returns 102
parseInt("2147483647", 10) returns 2147483647
parseInt("-2147483648", 10) returns -2147483648
parseInt("2147483648", 10) throws a NumberFormatException
parseInt("99", 8) throws a NumberFormatException
parseInt("Kona", 10) throws a NumberFormatException
parseInt("Kona", 27) returns 411787

보다 자세한 설명

public static int parseInt​(String s, int radix) throws NumberFormatException
Parses the string argument as a signed integer in the radix specified by the second argument. The characters in the string must all be digits of the specified radix (as determined by whether Character.digit(char, int) returns a nonnegative value), except that the first character may be an ASCII minus sign '-' ('\u002D') to indicate a negative value or an ASCII plus sign '+' ('\u002B') to indicate a positive value. The resulting integer value is returned.
An exception of type NumberFormatException is thrown if any of the following situations occurs:

The first argument is null or is a string of length zero.
The radix is either smaller than Character.MIN_RADIX or larger than Character.MAX_RADIX.
Any character of the string is not a digit of the specified radix, except that the first character may be a minus sign '-' ('\u002D') or plus sign '+' ('\u002B') provided that the string is longer than length 1.
The value represented by the string is not a value of type int.

Parameters:
s - the String containing the integer representation to be parsed
radix - the radix to be used while parsing s.
Returns:
the integer represented by the string argument in the specified radix.
Throws:
NumberFormatException - if the String does not contain a parsable int.

출처 : 공식 문서 https://docs.oracle.com/javase/9/docs/api/java/lang/Integer.html


참고로
Integer클래스가 지원하는 parseInt()함수는 3가지가 있다. -매개변수가 다르므로 각각의 상황에 따라 호출된다.

가장 많이 쓰는 것은
static int parseInt(String s) : 매개변수로 들어온 s값을 10진수 int로 반환한다.

두 번째는 위에서 다룬
static int parseInt(String s, int radix)는 radix진수로 쓰여진 s를 10진수 int형으로 반환한다.

마지막으로 static int parseInt(CharSequence s, int beginIndex, int endIndex, int radix)는
주어진 s의 beginIndex에서 endIndex-1까지의 문자열을 radix진수 값으로 보고 이를 10진수 int값으로 반환한다.

반응형