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

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

    转自:https://blog.csdn.net/V0218/article/details/74945203

    Java的进制转换

     进制转换原理

        十进制 转 二进制:

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

          6 --> 110

      二进制 转 十进制

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

          110 ->0*2+ 1*2+ 1 * 22

                         0  +  2   + 4=6

          0   0  1  1 0 1 0 1

        128 64 32 16 8 4 2 1    = 53

     当 8个bit 都是 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 = 15 逢16进1

            以  90为例:

             0101-1010

               ----   ----

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

     二进制 转 八进制

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

              111 = 4+2+1 = 7 逢8进1

        前面位数不够 拿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:

  • 相关阅读:
    使用Astah画UML类图经验总结
    Qt的四个常见的图像叠加模式
    获取Linux时间函数
    DBus学习网站
    线程属性pthread_attr_t简介
    Secure CRT 自动记录日志log配置
    MySQL的group_concat()函数合并多行数据
    MySQL的Limit详解
    异步查询json传日期格式到前台,变成了时间戳的格式
    启动studio报错Gradle error
  • 原文地址:https://www.cnblogs.com/JimShi/p/11495055.html
Copyright © 2011-2022 走看看