| 2018.5.19 | java |
10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下
10—2:把20转换成二进制
20 2=10……….余数为0
10 2=5………..余数为0
5 2=2…………余数为1
2 2=1…………余数为0
1 2=0…………余数为1
则20换成二进制后是10100
10—8:把20转换成八进制
20 8=2………..余数为4
2 8=0…………余数为2
则20转换成八进制后是24
10—16:把20转换成十六进制
20 16=1……….余数为4
1 16=0………..余数为1
则20转换成十六进制后是14
2—10:把二进制数1101转换成十进制
1101=12的0次方+02的1次方+12的2次方+12的3次方=13
则1101变成十进制后是13
8—10:把八进制数1340转换成十进制
1340=08的0次方+48的1次方+38的2次方+18的3次方=736
则1340变成十进制后是736
16—10:把十六进制数3A4F转换成十进制
3A4F=1516的0次方+416的1次方+1016的2次方+316的3次方=14927
(十六进制中的A是10,F是15)
二进制与八进制的相互转换:
八进制数 0 1 2 3 4 5 6 7
二进制数 000 001 010 011 100 101 110 111
二进制与十六进制的相互转换:
十六进制 0 1 2 3 4 5 6 7 B
二进制数 0000 0001 0010 0011 0100 0101 0110 0111 1011
// 本文介绍的主要是java十进制数字类型转十六进制,由于十进制超出范围的问题。将超出范围的的数字转换为Long类型
,然后进行计算,同样可得到结果
package com.java.test;
public class JinZhi{
public static void main(String args[]){
JinZhi t = new JinZhi();
String a = t.t1(1000L);
System.out.println(a);
}
//把a转成指定进制
private String t2(int a,int n){
String str = "";
//1:用a去除以n,得到商和余数
int sun = a/n;
int yuShu = a%n;
str = ""+shuZhiToZhiMu(String.valueOf(yuShu));
while(sun > 0 ){
//2:继续用商去除以n,得到商和余数
yuShu = sun % n;
sun = sun / n;
//3:如果商为0,那么就终止
//4:把所有的余数倒序排列
str = shuZhiToZhiMu(String.valueOf(yuShu)) + str;
}
System.out.println(n+"进制==="+str);
return str;
}
//写一个方法实现:把一个十进制的数转换成为16进制的数
private String t1(Long a){
String str = "";
//1:用a去除以16,得到商和余数
Long sun = a/(16L);
Long yuShu = a%16L;
str = ""+shuZhiToZhiMu(String.valueOf(yuShu));
while(sun > 0 ){
//2:继续用商去除以16,得到商和余数
yuShu = sun % 16;
sun = sun / 16;
//3:如果商为0,那么就终止
//4:把所有的余数倒序排列
str = shuZhiToZhiMu(String.valueOf(yuShu)) + str;
}
System.out.println("16进制==="+str);
return str;
}
private String shuZhiToZhiMu(String a){
switch(a){ //若jdk版本switch不支持String,可以将String转换为int类型后判断
case "10" :
return "a";
case "11" :
return "b";
case "12" :
return "c";
case "13" :
return "d";
case "14" :
return "e";
case "15" :
return "f";
}
return ""+a;
}
}
//二转十
Integer.toBinaryString(int i);
//八转十
Integer.toOctalString(int i);
//十六转十
Integer.toHexString(int i);
//二转十
Integer.valueOf("1010",2).toString();
//八转十
Integer.valueOf("8765",8).toString();
//十六转十
Integer.valueOf("FFFF",16).toString();
更新列表:
*
参考文章:
[4]: