java中的进制转换

时间:2019-09-09
本文章向大家介绍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:

原文地址:https://www.cnblogs.com/JimShi/p/11495055.html