十进制转化为十六进制的方法是除16取余法,269/16=16余13(即D),16/16=1余0,1/16=0余1,从后往前取余数,则转化成的十六进制数为10D。
十进制转化为二进制采用除二取余法,27/2=13余1,13/2=6余1,6/2=3余0,3/2=1余1,1/2=0余1,将余数从后往前读取即得到二进制结果11011。
二进制转化为十六进制的方法为在二进制数前方加0将二进制数的位数补齐为4的倍数使得101101变为00101101,从左往右依次取4位二进制数进行换算0010变为2,1101变为D,所以101101转换为十六进制数为2D。
二进制转换为十进制的计算方法为:12^5+024+0*23+12^2+121+0*20+12(-1)+02(-2)+1*2(-3)=38.625。
二进制转化为八进制的方法为在二进制数前方加0将二进制数的位数补齐为3的倍数使得1100111变为001100111,从左往右依次取3位二进制数进行换算001变为1,100变为4,111变为7,所以1100111转换为八进制数为147。
JAVA中的进制转换:
十六进制转换为十进制
import java.util.*;
public class Main {
//库转换
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
String n = sc.nextLine();
int num = Integer.decode(n);
//int num = Integer.parseInt(n.substring(2),16);
System.out.println(num);
}
}
}
//自己转换
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNextLine()){
//必须要去掉前面两位
String s = sc.nextLine().substring(2);
int sum = 0;
for (int i=0;i<s.length();i++){
char m = s.charAt(i);
int num = m >= 'A' ? m - 'A' + 10 : m - '0';
sum += Math.pow(16,s.length() - 1 - i)*num;
}
System.out.println(sum);
}
}
}
直接调用Java的decode方法.
该方法的作用是将 String 解码为 Integer。接受十进制、十六进制和八进制数字。
根据要解码的 String(mn)的形式转成不同进制的数字。 mn由三部分组成:符号、基数说明符和字符序列。 -0X123中-是符号位,0X是基数说明符(0表示八进制,0x,0X,#表示十六进制,什么都不写则表示十进制),123是数字字符序列。
网友评论