java 10进制和16进制的相互转换
2017-07-13 11:11
501 查看
16进制转10进制
思路:求得每一位对应的16的幂,然后乘以这一位的数值,然后把求得的乘积相加
10进制转16进制
思路:运用辗转相除法,取余数补对应的位数,直到相除结果为0
思路:求得每一位对应的16的幂,然后乘以这一位的数值,然后把求得的乘积相加
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ String hex=sc.next().substring(2).toUpperCase(); int len=hex.length(); int result=0; for(int i=0;i<len;i++){ char val=hex.charAt(len-i-1); if(val>='A'&&val<='F'){ result+=Integer.valueOf(val-55)*Math.pow(16, i);//A是65,B\是66,减去55刚好是10、11 }else{ result+=Integer.valueOf(val-48)*Math.pow(16, i);//48是数字0。val-48就是int型数值 } } System.out.println(result); } } }
10进制转16进制
思路:运用辗转相除法,取余数补对应的位数,直到相除结果为0
import java.util.*; public class Main1 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); char []ch=new char[20]; int index=0; while(true){ int m=n/16; int y=n%16; if(y==15) ch[index]='F'; else if(y==14) ch[index]='E'; else if(y==13) ch[index]='D'; else if(y==12) ch[index]='C'; else if(y==11) ch[index]='B'; else if(y==10) ch[index]='A'; else ch[index]=(char) ('0'+y); index++; if(m==0) break; n=m; } StringBuffer s=new StringBuffer(); s.append(ch,0,index); s.reverse(); String strHex="0x"; strHex+=s.toString(); System.out.println(strHex); } } }
相关文章推荐
- 16进制、10进制、字符串、中文、byte[]相互转换--->java版
- java中 8进制 10进制 2进制 16进制 相互转换
- java中 8进制 10进制 2进制 16进制 相互转换
- Java 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换
- java中二进制,8进制,10进制,16进制的转换
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- C# 10进制与16进制相互转换
- java学习3-查表法实现10进制转换为16进制
- VC++中2进制,10进制,16进制相互转换
- 超级(无限)大的 --- 整型10进制数据与16进制数据相互转换
- java 16进制与10进制等转换
- java 10进制与16进制的转换
- 10进制与2进制,8进制,16进制的相互转换
- java之10进制转换2,8,16进制
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- VC++ 中实现进制2进制,10进制,16进制的相互转换
- 【原】VC++ 中实现进制2进制,10进制,16进制的相互转换
- 10进制数和16进制字符串 相互转换
- java将16进制与10进制互相转换
- vc 10进制与2 8 16进制相互转换