天天看点

java 进制转换

转载出处: http://www.iteye.com/blogs/tag/JDK

Java算法JDK 

由于Unicode兼容ASCII(0~255),因此,上面得到的Unicode就是ASCII。 

至于转换成二进制或其他进制,Java API提供了方便函数,你可以查Java的API手册。 

以字符a的ASCII为例: 

Java代码  

  1. int i = 'a';  
  2. String iBin = Integer.toBinaryString(i);//二进制  
  3. String iHex = Integer.toHexString(i);//十六进制  
  4. String iOct = Integer.toOctalString(i);//八进制  
  5. String iWoKao = Integer.toString(i,3);//三进制或任何你想要的35进制以下的进制  

DEC 

[集]java中进行二进制,八进制,十六进制,十进制间进行相互转换      

十进制转成十六进制: 

Integer.toHexString(int i) 

十进制转成八进制 

Integer.toOctalString(int i) 

十进制转成二进制 

Integer.toBinaryString(int i) 

十六进制转成十进制 

Integer.valueOf("FFFF",16).toString() 

八进制转成十进制 

Integer.valueOf("876",8).toString() 

二进制转十进制 

Integer.valueOf("0101",2).toString() 

有什么方法可以直接将2,8,16进制直接转换为10进制的吗? 

java.lang.Integer类 

parseInt(String s, int radix) 

使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 

examples from jdk: 

parseInt("0", 10) returns 0 

parseInt("473", 10) returns 473 

parseInt("-0", 10) returns 0 

parseInt("-FF", 16) returns -255 

parseInt("1100110", 2) returns 102 

parseInt("2147483647", 10) returns 2147483647 

parseInt("-2147483648", 10) returns -2147483648 

parseInt("2147483648", 10) throws a NumberFormatException 

parseInt("99", throws a NumberFormatException 

parseInt("Kona", 10) throws a NumberFormatException 

parseInt("Kona", 27) returns 411787 

进制转换如何写(二,八,十六)不用算法 

Integer.toBinaryString 

Integer.toOctalString 

Integer.toHexString 

例一:

  1. public class Test{  
  2. public static void main(String args[]){  
  3.    int i=100;  
  4.    String binStr=Integer.toBinaryString(i);  
  5.    String otcStr=Integer.toOctalString(i);  
  6.    String hexStr=Integer.toHexString(i);  
  7.    System.out.println(binStr);  

例二:

  1. public class TestStringFormat {  
  2. public static void main(String[] args) {  
  3.    if (args.length == 0) {  
  4.       System.out.println("usage: java TestStringFormat <a number>");  
  5.       System.exit(0);  
  6.    }  
  7.    Integer factor = Integer.valueOf(args[0]);  
  8.    String s;  
  9.    s = String.format("%d", factor);  
  10.    System.out.println(s);  
  11.    s = String.format("%x", factor);  
  12.    s = String.format("%o", factor);  
  13. }  

各种数字类型转换成字符串型: 

String s = String.valueOf( value); // 其中 value 为任意一种数字类型。 

字符串型转换成各种数字类型:

  1. String s = "169";  
  2. byte b = Byte.parseByte( s );  
  3. short t = Short.parseShort( s );  
  4. int i = Integer.parseInt( s );  
  5.    int i=  Integer.value("4445");
  6. long l = Long.parseLong( s );  
  7. Float f = Float.parseFloat( s );  
  8. Double d = Double.parseDouble( s );  

数字类型与数字类对象之间的转换: 

  1. byte b = 169;  
  2. Byte bo = new Byte( b );  
  3. b = bo.byteValue();  
  4. short t = 169;  
  5. Short to = new Short( t );  
  6. t = to.shortValue();  
  7. int i = 169;  
  8. Integer io = new Integer( i );  
  9. i = io.intValue();  
  10. long l = 169;  
  11. Long lo = new Long( l );  
  12. l = lo.longValue();  
  13. float f = 169f;  
  14. Float fo = new Float( f );  
  15. f = fo.floatValue();  
  16. double d = 169f;  
  17. Double dObj = new Double( d );  

继续阅读