zoukankan      html  css  js  c++  java
  • java中的进制转换方法

    java中进行二进制,八进制,十六进制,十进制间进行相互转换
      
    关键字: 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  
    
    例一  
    public class Test{  
    	public static void main(String args[]){  
    		int i=100;  
    		String binStr=Integer.toBinaryString(i);  
    		String otcStr=Integer.toOctalString(i);  
    		String hexStr=Integer.toHexString(i);  
    		System.out.println(binStr);  
    	}  
    }
    
    例二  
    public class TestStringFormat {  
    	public static void main(String[] args) {  
    		if (args.length == 0) {  
    			System.out.println("usage: java TestStringFormat <a number>");  
    			System.exit(0);  
    		}  
    		Integer factor = Integer.valueOf(args[0]);  
    		String s;  
    		s = String.format("%d", factor);  
    		System.out.println(s);  
    		s = String.format("%x", factor);  
    		System.out.println(s);  
    		s = String.format("%o", factor);  
    		System.out.println(s);  
    	}  
    }  
    
    其他方法:  
    Integer.toHexString(你的10进制数);  
    
    例如  
    String temp = Integer.toHexString(75);  
    输出temp就为 4b  
    //输入一个10进制数字并把它转换成16进制  
    
    import java.io.*;  
    public class toHex{  
    	public static void main(String[]args){  
    		int input;//存放输入数据  
    		//创建输入字符串的实例  
    		BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));  
    		System.out.println("请输入一个的整数:");  
    		String x=null;  
    		try{  
    			x=strin.readLine();  
    		}catch(IOException ex){  
    			ex.printStackTrace();  
    		}  
    		input=Integer.parseInt(x);  
    		System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字  
    		System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制  
    	}  
    }


    大数进制转换方法

    方法一:
    
    //10进制->2进制 
    String a = "-1195";
    //输入数值 BigInteger src = new BigInteger(a);
    //转换为BigInteger类型 System.out.println(src.toString(2));
    
    //转换为2进制并输出结果 
    //2进制->10进制 
    String a = "10010101011";
    //输入数值 
    BigInteger src = new BigInteger(a, 2);
    //转换为BigInteger类型 
    System.out.println(src.toString());
    //转换为2进制并输出结果 由此可见,有2点要注意: 
    
    1. BigInteger的构造函数 
    BigInteger(String src)默认参数字符串为10进制数值 
    BigInteger(String src, int x)
    第2个参数x是指定第一个参数src的进制类型 
    
    2. toString方法 
    toString()默认把数值按10进制数值转化为字符串。 
    toString(int x)把数值按参数x的进制转化为字符串。
    
    
    方法二:
    //十进制转其他进制
    String str;int number;
    //转2进制
    number = Integer.parseInt(str);    
    System.out.println(Integer.toBinaryString(number));
    //转8进制
    number = Integer.parseInt(str);    
    System.out.println(Integer.toOctalString(number));
    
    //转16进制
    number = Integer.parseInt(str);    
    System.out.println(Integer.toHexString(number));
    
    转换原理:将十进制转换成二进制的算法如下: 
    1.给定一个数; 
    
    2.根据十进制转换二进制的思想:
    把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。
    所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1,否则r=0;如此循环下去,直到这个数〉=1。 
    
    3.然后把r的值送到一个数组里面。最后把这个数组里面的内容从后面打印出来就可以了。 
    public class ChangeTo2 { 
    	public static void main(String args[]) { 
    		int n=16; 
    		int r; 
    		int i=0; 
    		int[] a=new int[10]; 
    		do { 
    			if(n%2==1) { 
    				r=1; 
    			} 
    			else { 
    				r=0; 
    			} 
    			a[i]=r; 
    			n=n/2; 
    			i++; 
    		}while(n>0);
    		System.out.print("转换成二进制为:"); 
    		for(int j=i-1;j>=0;j--) { 
    			System.out.print(a[j]); 
    		} 
    		System.out.println(); 
    	} 
    } 
    2.把二进制转换成十进制的算法如下: 
    1.给定一个二进制数 
    2.把他看成一个十进制数,依次除以10,每除以一次,变量i加1, 
    然后把除的次数加1,就是这个二进制的位数。 
    3.然后让除以10之后的结果和10取余,把结果保存到一个数组中。 
    4.最后用传统的数学方法求出这个10进制即可~


    F

  • 相关阅读:
    DPDK安装方法 17.12.13
    numa.h:No such file or directory 解决方法
    17秋 软件工程 第六次作业 Beta冲刺 Scrum3
    17秋 软件工程 第六次作业 Beta冲刺 总结博客
    17秋 软件工程 第六次作业 Beta冲刺 Scrum2
    Paper Reviews and Presentations
    17秋 软件工程 第六次作业 Beta冲刺 Scrum1
    17秋 软件工程 第六次作业 Beta冲刺
    error: could not create '/System/Library/Frameworks/Python.framework/Versions/2.7/share': Operation not permitted
    17秋 软件工程 个人作业 软件产品案例分析
  • 原文地址:https://www.cnblogs.com/riskyer/p/3237087.html
Copyright © 2011-2022 走看看