Java 各种进制相互转换
##ai/JinZhiZhuanHuan.java
【1】解题思路
java方法 |
---|
c语言思路 |
【2】代码展示1(java方法)
import java.util.Scanner;
public class JinZhiZhuanHuan{
public static void main(String[] args) {
System.out.println("请您输入一位整数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//将十进制转换为其他进制
System.out.println(n + "二进制为:" + Integer.toBinaryString(n));
System.out.println(n + "十六进制为:" + Integer.toHexString(n));
System.out.println(n + "八进制为:" + Integer.toOctalString(n));
//将其他进制转换为二进制
System.out.println("请您输入你所要转换的进制:");
int x = sc.nextInt();
System.out.println("请您输入你所要转换的数:");
int y = sc.nextInt();
String yy = "" + y;
int s = Integer.valueOf(yy,x);//yy指的是任何字符串,x为几进制
System.out.println(y + "的" + x + "进制为:" + s);
}
}
【3】代码展示2(c语言思路)
public class JinZhiZhuanHuan {
static void ShiZhuanEr() {
//十进制转二进制
System.out.println("请您输入一位整数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 1; int x = n;
int y,sum; sum = 0;
while(x != 0) {
y = (x % 2) * count;
sum = y + sum;
x = x / 2;
count = count * 10;
}
System.out.println(n + "的二进制为:" + sum);
}
static void ErZhuanShi() {
//二进制转十进制
System.out.println("请您输入一位二进制整数:");
Scanner scc = new Scanner(System.in);
int k = scc.nextInt(); int t = 0,l = k,u = 0;
//计算十进制的有多少位
while(k != 0) {
t = t + 1;
u = u + 1;
k = k / 10;
}
//确定每个位上的值
double s = 0, z;
for(double i = 0;i < t ;i++) {
u--;
if(l < 10) z = l ;
else z = l % (Math.pow(10, u));
//if...else的用意是得到二进制上的最高位
l = l / 10;
s = s + z*Math.pow(2, i);
}
System.out.print(l + "的十进制为:" + s );
}
public static void main(String[] args) {
ShiZhuanEr();
ErZhuanShi();
}
}