자바 복잡 한 진 변환기 기능 예시 실현
이것 은 자바 로 쓴 진 변환기 로 10,2,8,16 진 간 의 총 12 가지 상호 전환 을 포함한다.변환 할 수 를 입력 한 후 알림 에 따라 변환 방식 을 선택 하고 출력 변환 결 과 를 선택 하 십시오.
주:새로 올 린 파일 은 이전 코드(아래 3.원 자바 코드)를 바탕 으로 개선 되 어 패 키 징 을 더욱 잘 실현 할 수 있 습 니 다.
1. SystemConvert.java
package day8;
import java.util.Scanner;
public class SystemConvert {
static Scanner scanner = new Scanner(System.in);
static String s = "";
// 10 2 。
public static String C10T2(int numb) {
String result = "";
for (int i = numb; i > 0; i /= 2)
result = i % 2 + result;
return result;
}
// 10 8 。
public static String C10T8(int numb) {
String result = "";
for (int i = numb; i > 0; i /= 8)
result = i % 8 + result;
return result;
}
// 2 10 。
public static int C2T10(int numb) {
int k = 0, result = 0;
// String result=null;
for (int i = numb; i > 0; i /= 10) {
result += (i % 10) * Math.pow(2, k);
k++;
}
return result;
}
// 8 10 。
public static int C8T10(int numb) {
int k = 0, temp = 0;
for (int i = numb; i > 0; i /= 10) {
temp += (i % 10) * Math.pow(8, k);
k++;
}
return temp;
}
public static void convert10(int numb, int to) {
String s = "";
switch (to) {
case 2:
s = "" + C10T2(numb);
break;
case 8:
s = "" + C10T8(numb);
break;
case 16:
s = Integer.toHexString(numb).toUpperCase();
break;
default:
System.out.println("wrong input!");
}
System.out.println(s);
}
public static void convert2(int numb, int to) {
String s = "";
switch (to) {
case 10:
s = "" + C2T10(numb);
break;
case 8:
s = "" + C10T8(C2T10(numb));
break;
case 16:
s = Integer.toHexString(C2T10(numb)).toUpperCase();
break;
default:
System.out.println("wrong input!");
}
System.out.println(s);
}
public static void convert8(int numb, int to) {
String s = "";
switch (to) {
case 2:
s = "" + C10T2(C8T10(numb));
break;
case 10:
s = "" + C8T10(numb);
break;
case 16:
s = Integer.toHexString(C8T10(numb)).toUpperCase();
break;
default:
System.out.println("wrong input!");
}
System.out.println(s);
}
public static void convert16(String numb, int to) {
String s = "";
switch (to) {
case 2:
int temp2 = Integer.parseInt(numb, 16);
s = C10T2(temp2);
break;
case 8:
int temp3 = Integer.parseInt(numb, 16);
s = C10T8(temp3);
break;
case 10:
int temp = Integer.parseInt(numb, 16);
s = "" + temp;
break;
default:
System.out.println("wrong input!");
}
System.out.println(s);
}
public static void convert(int numb, int from, int to) {
switch (from) {
case 10:
convert10(numb, to);
break;
case 2:
convert2(numb, to);
break;
case 8:
convert8(numb, to);
break;
default:
System.out.println("wrong input!");
}
}
public static void convert(String numb, int from, int to) {
switch (from) {
case 16:
convert16(numb, to);
break;
default:
System.out.println("wrong input!");
}
}
public static void main(String[] args) {
System.out.println(" 16 ?
1。 ;
2. .
");
int input = scanner.nextInt();
switch (input) {
case 1:
System.out.println(" 16 :");
String numb = scanner.next();
System.out.println(" ?");
int to = scanner.nextInt();
convert(numb, 16, to);
break;
case 2:
System.out.println(" :");
int numb2 = scanner.nextInt();
System.out.println(" ?");
int from = scanner.nextInt();
System.out.println(" ?");
int to2 = scanner.nextInt();
convert(numb2, from, to2);
break;
default:
System.out.println("wrong input!");
}
}
}
2.실행 효과 캡 처:3.원래 자바 코드
import java.util.Scanner;
public class SystemConvert {
static Scanner scanner = new Scanner(System.in);
static String s = "";
public static void convert() {
System.out.println("please input a number:");
String numb = scanner.next();
System.out.println("choose a way:
1, 10 2 ;
"
+ " 2, 2 10 ;
" + " 3, 10 8 ;
"
+ " 4, 8 10 ;
" + " 5, 10 16 ;
"
+ " 6, 16 10 ;
" + " 7, 2 8 ;
"
+ " 8, 2 16 ;
" + " 9, 8 2 ;
"
+ " 10, 8 16 ;
" + " 11, 16 2 ;
"
+ " 12, 16 8 ;
");
int input = scanner.nextInt();
switch (input) {
case 1: // 10>>>2
s = "" + C10T2(numb);
break;
case 2: // 2>>>10
s += C2T10(numb);
break;
case 3: // 10>>>8
s = "" + C10T8(numb);
break;
case 4: // 8>>>10
s = "" + C8T10(numb);
break;
case 5: // 10>>>16
s = Integer.toHexString(Integer.valueOf(numb)).toUpperCase();
break;
case 6:// 16>>>10
int temp = Integer.parseInt(numb, 16);
s = "" + temp;
break;
case 7: // 2>>>8
s = "" + C10T8(Integer.toString(C2T10(numb)));
break;
case 8: // 2>>>16
s = Integer.toHexString(Integer.valueOf(C2T10(numb))).toUpperCase();
break;
case 9: // 8>>>2
s = "" + C10T2(Integer.toString(C8T10(numb)));
break;
case 10:// 8>>>16
s = Integer.toHexString(Integer.valueOf(C8T10(numb))).toUpperCase();
break;
case 11:// 16>>>2
int temp2 = Integer.parseInt(numb, 16);
s = Integer.toBinaryString(temp2);
break;
case 12:// 16>>>8
int temp3 = Integer.parseInt(numb, 16);
s = C10T8(Integer.toString(temp3));
break;
default:
System.out.println("Wrong input!");
}
System.out.println(s);
}
public static int C2T10(String numb) {
int k = 0, result = 0;
// String result=null;
for (int i = Integer.valueOf(numb); i > 0; i /= 10) {
result += (i % 10) * Math.pow(2, k);
k++;
}
return result;
}
public static int C8T10(String numb) {
int k = 0, temp = 0;
for (int i = Integer.valueOf(numb); i > 0; i /= 10) {
temp += (i % 10) * Math.pow(8, k);
k++;
}
return temp;
}
public static String C10T8(String numb) {
String result = "";
for (int i = Integer.valueOf(numb); i > 0; i /= 8)
result = i % 8 + result;
return result;
}
public static String C10T2(String numb) {
String result = "";
for (int i = Integer.valueOf(numb); i > 0; i /= 2)
result = i % 2 + result;
return result;
}
public static void main(String[] args) {
SystemConvert.convert();
}
}
4.캡 처 실행:PS:여기 서 본 사이트 의 온라인 진법 전환 과 계산 도 구 를 몇 가지 더 추천 합 니 다.여러분 에 게 도움 이 될 것 이 라 고 믿 습 니 다.
온라인 임 의 진 변환 도구:
http://tools.jb51.net/transcoding/hexconvert
온라인 표준 계산기:
http://tools.jb51.net/jisuanqi/jsq
온라인 과학 계산기:
http://tools.jb51.net/jisuanqi/jsqkexue
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.