Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- edittext 연결
- AAC
- 아파치 엔진엑스
- hilt error
- 안드로이드 스튜디오 custom dialog
- 안드로이드 스튜디오 반복되는 레이아웃 코드
- recyclerview item recycle
- java thread 예제
- apache란
- Kotlin
- 이중for문 사용 안하기
- apache nginx
- 리사이클러뷰 아이템 재사용
- 아파치란
- java
- 안드로이드 스튜디오 커스텀 다이얼로그
- 안드로이드 스튜디오 인터넷 연결 안되어 있을 때
- 자바 스레드 예제
- 변수
- Thread
- LifeCycle
- 안드로이드 스튜디오 인터넷 연결 확인
- savedinstancestate
- 객체지향 프로그래밍 5가지 원칙
- 다른 객체 리스트의 비교
- 디자인 패턴 예제
- 안드로이드 디자인패턴
- 안드로이드 스튜디오 tts
- dagger error
- 안드로이드 스튜디오 style
Archives
- Today
- Total
Sam Story
JAVA - 2~36진수 기수변환 본문
오늘 포스팅은
코테를 준비하며 사용했던 것중 유용하게 사용한
2~36진수 변환 관련 내용을 포스팅 해보려 한다.
일단 예제부터 확인해보자.
예제
import java.util.Scanner;
public class CardConv {
// 입력받은 10진수를 2~36진수로 기수 변환하여 출력하는 메서드
static int cardConv(int x , int r , char[] d) {
int digits = 0;
String dchar = "0123456789ABCDEFGHIJKLMNOPQRXTUVWXYZ";
do {
d[digits++] = dchar.charAt(x % r);
x /= r;
}while (x != 0);
for (int i =0; i < digits / 2; i ++) {
char t = d[i];
d[i] = d[digits - i - 1];
d[digits - i - 1] = t;
}
return digits;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int no;
int cd;
int dno;
int retry;
char[] cno = new char[32];
System.out.println("10진수를 기수 변환합니다.");
do {
do {
System.out.print("변환하는 음이 아닌 정수: ");
no = scan.nextInt();
} while (no < 0);
do {
System.out.print("어떤 진수로 변환할까요? (2~36): ");
cd = scan.nextInt();
} while (cd < 2 || cd > 36);
dno = cardConv(no,cd,cno);
System.out.print(cd + "진수로 ");
for (int i = 0; i < dno; i ++) {
System.out.print(cno[i]);
}
System.out.println("입니다");
System.out.println("한 번 더 할까요? (1...예 / 0...아니요) : ");
retry = scan.nextInt();
} while (retry == 1);
}
}
실행결과
위 프로그램 처럼 직접 기수 변환하는 메서드를 작성하여
프로그램을 작동 시키는 방법도 있지만
정말 간단하게 10진수를 2진수로 바꿔주는 내장 메서드도 있다.
바로 toBinaryString() 메서드를 사용하면 10진수를 바로 2진수로 바꿔줄 수 있는데
아래 예제코드를 보며 확인해보자.
예제
import java.util.Scanner;
public class CardConvExample {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("2진수로 바꿀 숫자를 입력해 주세요.");
int num = scan.nextInt();
System.out.println(Integer.toBinaryString(num));
}
}
실행결과
이렇게 toBinaryString() 메서드를 사용하면
2진수의 경우는 별다른 메서드를 작성할 필요없이 바로 구할 수 있다.
알아두면 유용하게 사용할 수 있는 메서드라고 생각한다.
'JAVA' 카테고리의 다른 글
JAVA - 개방 폐쇄 원칙 (0) | 2024.10.14 |
---|---|
JAVA - 단일 책임의 원칙 (1) | 2024.10.12 |
JAVA - 자료구조 Map (4) | 2024.09.21 |
JAVA - 스레드 (Thread) (0) | 2024.05.12 |
JAVA - 랜덤 함수 (Random class) (0) | 2024.05.06 |