一、十进制转二进制
方法:做除法(该十进制数除以2),余数逆序
举例:
10(10进制)------->>> 1010(2进制)
10/2 商为5 余数为0
5/2 商为2 余数为 1
2/2 商为1 余数为 0
1/2 商为0 余数1
二、十进制转十六进制
方法:除16取余法
该十进制数除以16,然后取每次得到的商和余数,用商继续和16相除,直到商小于16。然后把第一次得到的余数作为十六进制的个位,第二次得到的余数作为十六进制的十位,依次类推,最后一次得到的小于16的商作为十六进制的最高位,这样由商+余数组成的数字就是转换后十六进制的值
举例:
例子1:将十进制数(93)10转换成十六进制数。
93/16=5…………13(D)
(93)10=(5D)16
补充:
1、在Java中的Integer类提供了进制转换方法Interger.toBinaryString()、Interger.toOctalString()、Interger.toHexString()分别实现十进制转换为二进制、八进制、十六进制
2、Integer.valueOf(s, radix) 将第一个参数解释为用第二个参数指定的基数表示的有符号整数,换句话说就是将 s 以 radix 进制的形式转换为十进制。
public class Test
{
public static void main(String[] args) {
System.out.println("==========十进制778转换到其它进制:==========");
int numberDec = 778;
System.out.println("十进制转二进制: " + Integer.toBinaryString(numberDec));
System.out.println("十进制转八进制: " + Integer.toOctalString(numberDec));
System.out.println("十进制转十六进制: " + Integer.toHexString(numberDec));
String numberOct = "1412";
System.out.println("八进制转十进制: " + Integer.valueOf(numberOct, 8));
String numberHex = "30A";
System.out.println("十六进制转十进制: " + Integer.valueOf(numberHex , 16));
String numberBin = "1100001010";
System.out.println("二进制转十进制: " + Integer.valueOf(numberBin, 2));
}
}
运行结果: