[프로그래밍언어][Java(자바)] (Class) Integer - 문자열로 변환, 값 비교, 진법 변환 등

728x90

 

Class Integer

 

Modifier and Type Method Description
static int parseInt(String s) 문자열을 부호 있는 10진 정수로 구문 분석
static Integer valueOf(int i)
valueOf(String s)
인수를 Integer 형식으로 변환
staitc int compare(int x, int y) 두 int 값 비교 ( 수치적으로 )
int compareTo(Integer anotherInteger) 두 Integer 개체 비교 ( 수치적으로 )
*  if  A == B  then return  0
*  if  A > B  then return  1
*  if  A < B  then return  -1
static int bitcount(int i) int 값의 2진수에서 1비트의 개수 반환
static String toBinaryString(int i) 10진수의 정수를 2진수의 문자열로 표현
static String toHexString(int i) 10진수의 정수를 8진수의 문자열로 표현
static String toOctalString(int i) 10진수의 정수를 16진수의 문자열로 표현
static String toUnsignedString(int i, int radix) 10진수의 정수를 'radix' 진수의 문자열로 표현
static int parseInt(String s, int radix) 'radix' 진수의 문자열을 10진수의 정수로 표현

 

Modifier and Type Fields Description
static int MAX_VALUE int가 가질 수 있는 최댓값 ( = 2^31 - 1 )
static int MIN_VALUE int가 가질 수 있는 최소값 ( = -2^31 )

 

( https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#reverse-int- )

 

 

▶  수의 자리수 구하기

int n;
int len1 = String.valueOf(n).length();		// [way 1]
int len2 = Integer.toString(n).legnth();		// [way 2]
int len3 = (int) (Math.log10(n) + 1); 		// [way 3]
int len4 = 0;									// [way 4]
while (n > 0) {
	n /= 10;
	len4++;
}

 

▶  수의 각 자리 숫자의 합

int n;
int sum1 = 0;	// [way 1]
for (char c : String.valueOf(n).toCharArray())
	sum1 += c - '0';
int sum2 = 0;	// [way 2]
while (n > 0) {
	sum2 += n % 10;
	n /= 10;
}

 

▶  진법 변환

int n, m; // n : 변환할 수, m : 진수

// 10진수 -> m진수
String res_2 = Integer.toBinaryString( n );			// 10진수 -> 2진수
String res_8 = Integer.toOctalString( n );			// 10진수 -> 8진수
String res_16 = Integer.toHexString( n );			// 10진수 -> 16진수
String res_m = Integer.toUnsignedString( n, m );		// 10진수 -> m진수 [way 1]
String res_m2 = "";									// 10진수 -> m진수 [way 2]
while (n > 0) {
	r = n % m;
	r += r < 10 ? '0' : 'A' - 10;
	res_m_2 = (char) r + res_m_2;
	n /= m;
}

// m진수 -> 10진수
int res_2_10 = Integer.parseInt( res_2, 2 );			// 2진수 -> 10진수
int res_8_10 = Integer.parseInt( res_8, 8 );			// 8진수 -> 10진수
int res_16_10 = Integer.parseInt( res_16, 16 );		// 16진수 -> 10진수
int res_m_10 = Integer.parseInt( res_m, m );			// m진수 -> 10진수 [way 1]
int res_m2_10 = 0, p = 1; char c;					// m진수 -> 10진수 [way 2]
for (int i = res_m_2.length() - 1; i >= 0; --i) {
	c = res_m_2.charAt(i);
	c -= c <= '9' ? '0' : 'A';
	res_m2_10 += p * (int) c;
	p *= m;
}

 

 

반응형