zoukankan      html  css  js  c++  java
  • java的数制转换(详解,全!)

    对于进制转换,c/c++要用到辗转相除,不仅浪费时间,还造成代码量繁多,而任意之间的进制转换还需要以十进制为跳板,

    先将其他进制的数字转换为十进制,再将十进制转换为其他进制,而java中自带进制转换的函数与方法,可以直接导包调用,非常方便,下面就是十

    进制(非大数,是普通整数)转换其他进制的代码,注意转换后是字符串:

    package Main;
    
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            int a=123;
            String s1=Integer.toBinaryString(a);  //将整数a转换成二进制字符串并输出
            System.out.println(s1);
            String s2=Integer.toOctalString(a);   //将整数a转换成八进制字符串并输出
            System.out.println(s2);
            String s3=Integer.toHexString(a);     //将整数a转换成十六进制字符串并输出
            System.out.println(s3);
            //Integer.toString(i,x),将i转换成任意x进制
            String s4=Integer.toString(a,7);      //将整数a转换成7进制并输出
            System.out.println(s4);
        }
    }
    

    下面是其他进制转换成10进制:

    package Main;
    
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
                // Integer.valueof("s",x);  s是对应的某个进制的字符串,x对应当前字符串的进制
                System.out.println("其它制转换到十进制:");
                int y1= Integer.valueOf("FFFF",16);     ///16进制转换成10进制
                System.out.println(y1);
                int y2=Integer.valueOf("776",8);        ///8进制转换成10进制
                System.out.println(y2);
                int y3=Integer.valueOf("0101",2);       //2进制转换成10进制
                System.out.println(y3);
                int y4=Integer.valueOf("101",7);        //7进制转换成10进制
                System.out.println(y4);
    
                System.out.println("其它的可能用到的函数:");
                //static int parseInt(String s, int radix) //使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
                int n = Integer.parseInt("776", 8) ; ///8进制转换成10进制
                System.out.println(n);
                ///Integer.valueOf()返回一个“integer对象”和Integer.parseInt()返回一个“int值”的区别在于,返回值不同
                ///基本常识,其他的非10进制的数的保存,基本都是以字符串的形式
    
    
                ///例子:7进制到8进制的转换
                String q = "6523" ; ///7进制的字符串
                String b = Integer.toString(Integer.valueOf(q,7),8) ;///这样7进制就变成8进制了
        }
    
    }
    

    下面将进行终极宝典,大数的任意进制转换成任意进制:

    package Main;
    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner cin = new Scanner(System.in);
            String s = cin.nextLine();
            int x = cin.nextInt();
            int y = cin.nextInt();
            System.out.println(Transform(s,x,y));
        }
    
        //s:输入的数字  x:原数的进制  y:要转化成的进制
        public static String Transform(String s,int x,int y) {
            return new java.math.BigInteger(s,x).toString(y);
        }
    }
    }
    
  • 相关阅读:
    vpp + vxlan
    vpp + frrouting
    VPP + vxlan
    dpdk: Unsupported PCI device 0x19e5:0x0200 found at PCI address 0000:05:00.0
    How-to: Build VPP FD.IO with Mellanox DPDK PMD on top CentOS 7.7 with inbox drivers.
    vpp[73384]: register_node:485: process stack: Invalid argument (errno 22)
    鲲鹏920上vpp--dpdk编译
    编译frr--python版本问题--Python-3.7.7
    安装vpp
    Go排序
  • 原文地址:https://www.cnblogs.com/julyzqy/p/12777344.html
Copyright © 2011-2022 走看看