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;
}
반응형