上几篇我已经介绍了各种进制转化的代码,本人觉得有点投机取巧,所以今天敲了一些比较 “靠谱的” 代码,希望大家有所帮助!
10进制转16进制:
import java.util.*;
public class 10to16 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int num=in.nextInt();
int[] f=new int [100];
int cnt=0;
while(num!=0) {
if(num%16==0) {
f[cnt++]=0;
num/=16;
}
else {
f[cnt++]=num%16;
num/=16;
}
}
for(int i=cnt-1;i>=0;i--) {
if(f[i]==15)
System.out.print("F");
if(f[i]==14)
System.out.print("E");
if(f[i]==13)
System.out.print("D");
if(f[i]==12)
System.out.print("C");
if(f[i]==11)
System.out.print("B");
if(f[i]==10)
System.out.print("A");
if(f[i]>=0 && f[i]<=9)
System.out.print(f[i]);
}
}
}
最后的输出肯定还有更好的解决方案,不过我实在想不出了,如果大家有什么好的解决方案,评论留言!
10进制转8进制
import java.util.*;
public class 10to8 {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
int num=in.nextInt();
int[] f=new int [100];
int cnt=0;
while(num!=0) {
if(num%8==0) {
f[cnt++]=0;
num/=8;
}
else {
f[cnt++]=num%8;
num/=8;
}
}
for(int i=cnt-1;i>=0;i--) {
System.out.print(f[i]);
}
}
}
10进制转2进制
代码
跟上面的差不多,就是把数字8换成2,就 ojbk 啦,我就不敲了!
2进制转10进制
import java.util.*;
public class 2to10 {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int num=0,nums=0,ns;
for(int i=0;n>0;i++) {
ns=n%10;
num=(int) (ns*Math.pow(2,i));
nums+=num;
n/=10;
}
System.out.println(nums);
}
}
2进制转8进制
代码
跟上面的差不多,就是把数字2换成8,就 ojbk 啦,我就不敲了!
16转10有点难度,想了一下,不过还是写出啦!
16进制转10进制
import java.util.*;
public class 16to10 {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String n = sc.nextLine();
int count =0;
int num=0,nums=0,ns=0;
for(int i=n.length()-1;i>=0;i--) {
char x= n.charAt(i);
if(x>='0'&&x<='9') {
ns= (int)(x-48);
num=(int) (ns*Math.pow(16,count));
}
if(x>='A'&&x<='F') {
ns= (int)(x-64+9);
num=(int) (ns*Math.pow(16,count));
}
nums+=num;
count++;
}
System.out.println(nums);
}
}
代码我就先敲到这里了,其他的16转8,8转2等等,也是很简单的,比如16转8:16转10,10转8;有时间我再一一奉上!嘿嘿!加油!
谢谢我目前唯一的粉丝!