• java 进制转换


    class Dec2XXX
    {
        public static void main(String[] args)
        {
            toBin(6);
            toHex(6);
            toOct(6);
        }
    
        /*10to2*/
        public static void toBin(int num)
        {
            trans(num, 1, 1);
        }
        /*10to16*/
        public static void toHex(int num)
        {
            trans(num, 15, 4);
        }
        /*10to8*/
        public static void toOct(int num)
        {
            trans(num, 7, 3);
        }
      //抽取相同功能
        public static void trans(int num, int base, int offset)
        {
            //查表法
            char[] chs = new char[]{'0','1','2','3',
                                    '4','5','6','7',
                                    '8','9','A','B',
                                    'C','D','E','F'};
            //用于存储转换结果 int类型 最大32位
        char[] arr = new char[32];
            int pos = arr.length;
    
            //只进行有效位的转换
            while(num != 0)
            {
          //位运算
                int temp = num & base;
                arr[--pos] = chs[temp];
                num = num >>> offset;//无符号右移
            }
         
        //"int pos = arr.length;"以及"arr[--pos]"的目的是使下面的for循环的i = pos
            for(int i = pos; i < arr.length; i++)
            {
                System.out.print(arr[i]);
            }
        }
    }

    #学习笔记,如有谬误,敬请指正。#
  • 相关阅读:
    thread.md
    Linux系统编程手册_第6章_进程
    第一章.md
    开始.md
    粘滞位
    端口转发和端口映射
    virtualbox.md
    第6章.md
    JsparentNode、parentElement,childNodes、children 它们有什么区别呢?
    Sql注入防小试
  • 原文地址:https://www.cnblogs.com/happyhacking/p/4147593.html
Copyright © 2020-2023  润新知