java中的进制转换及转换函数

来源:互联网 发布:网络鲜花店 上海 编辑:程序博客网 时间:2024/06/05 14:24

Java的进制转换

 进制转换原理

    十进制 二进制:

    原理: 对十进制数进行除2 运算取余。

      6 --> 110

  二进制 十进制

 原理: 二进制 乘以 2 n次幂 的过程

      110 ->0*20 + 1*21 + 1 * 22

                     0  +  2   + 4=6

      0   0  1  1 0 1 0 1

    128 64 32 16 8 4 2 1    = 53

 当 8bit都是 1  最大是255 那么一个字节最大就是255

 

   负数的二进制:

 其实就是 十进制数转换成 二进制数后取反+1

    -6为例,一个整数类型 是4个字节1 int = 4 byte = 32 bit

     0000-0000  0000-0000  0000-0000  0000-0110

     1111-1111  1111-1111  1111-1111  1111-1001 取反

  + 0000-0000  0000-0000  0000-0000  0000-0001  +1

       --------------------------------------------------

     1111-1111  1111-1111  1111-1111  1111-1010  = -6

 

 二进制 十六进制

    先将十进制 转成二进制 --> 十六进制

    四个二进制位 就是一个 十六进制位

         1111 最大值是 8+4+2+1 = 15161

        以  90为例:

         0101-1010

           ----   ----

           5        A        90 十六进制表示为 0x5A

 二进制 八进制

    三个二进制位 就是一个八进制位

          111 = 4+2+1 = 7 81

    前面位数不够 0

         001-011-010

            --- --- ---

            1   3   2   = 0132


进制转换原理

/*  该类用于进制转换*/public class Demo_2 {    public static void main(String[] args)    {        //System.out.println("hello");        System.out.println(Integer.toBinaryString(365));//十进制转换成二进制        System.out.println(Integer.toHexString(365));//十进制转换成十六进制        System.out.println(Integer.toOctalString(365));//十进制转换成8进制        System.out.println(Integer.toString(10,16));//十进制转换成对应进制数,不适合用于负数,第一个参数为转换数,第二个参数为转换进制                System.out.println(Integer.parseInt("1010",2));//N进制转换成十进制,返回类型为int,第一个参数为字符串,第二个参数为进制        System.out.println(Integer.parseInt("1010",8));        System.out.println(Integer.parseInt("1010",16));                        System.out.println(Integer.valueOf("1010",2));//N进制转换成十进制,返回类型为int,第一个参数为字符串,第二个参数为进制        System.out.println(Integer.parseInt("1010",8));        System.out.println(Integer.parseInt("1010",16));    }}

在dos下的运行结果1:


引入负数测试代码:

System.out.println(Integer.toString(10,2));//十进制转换成对应进制数,不适合用于负数System.out.println(Integer.toString(-10,2));System.out.println(Integer.toString(10,8));//第一个参数为转换数,第二个参数为转换进制System.out.println(Integer.toString(-10,8));System.out.println(Integer.toString(10,16));System.out.println(Integer.toString(-10,16));

在dos下的运行结果2:



原创粉丝点击