• 进制转化相关问题


    1.10进制转16进制
        2591转化为16进制数:
    ... + x2*16^2 + x1*16^1 + x0*16^0  =  2591
    同mod16得到:
    x0 = 2591 % 16 = 15   --->   x0 = 15
    同除以16:
    ... + x2 * 16^1 + x1*16^0 = 161
    再次同mod16:
    x1 = 1
    同除以16:
    ... + x2 * 16^0 = 10
    再次mod 16:
    x2 = 10
    除以16:
    右边因式 = 0,计算结束
    转化后数字为:A1F
     
     
    2.16进制转10进制
        16进制数A1F转化为10进制计算方式:
            10*16^2 + 1*16^1 + 15*16^0 = 2560 + 16 + 15 = 2591
        写代码过程中,从高位到低位,每两位都可以提取一个16计算,代码如下:
        
        public int titleToNumber(String s) {
            int lineNum = 0;
            for(int i = 0;i < s.length();i++){
                int num = s.charAt(i) - '0';
                if(s.charAt(i) > '9'){
                    num = s.charAt(i) - 'A'+ 10;
                }
                lineNum = lineNum * 16 + num;
            }
            return lineNum;
        }
    3.excel列名称计算(10进制转26进制,思想同1)
        需注意,excel列名称计算,与普通的进制转化不相同,是从1开始的,并且,也不是满26进1,满26依然是26(Z),27则变为AA(依然是从1开始)
        代码:
         
        public String convertToTitle(int n) {
            StringBuilder strBuilder = new StringBuilder();
            while(n != 0){
                n--;
                int x = n % 26;
                strBuilder.insert(0,(char)('A' + x));
                n = n / 26;
            }
            return strBuilder.toString();
        }

     4.10进制转化为7进制

    类似16进制转化,代码如下

    public String convertToBase7(int num) {
            boolean flag = num < 0 ? true : false;
            String result = "";
            num = Math.abs(num);
            do{
                result = num%7+""+ result;
                num = num/7;
            }while(num != 0);
            if(flag) result = "-" + result;
            return result;
    
        }
     
  • 相关阅读:
    调用Android中的软键盘
    EditText图文混排
    android开源框架
    Android 菜单(OptionMenu)
    onRetainNonConfigurationInstance和getLastNonConfigurationInstance
    Android HttpClient基本使用方法
    Eclipse中文注释乱码解决
    mysql怎么定义外键
    javaproject积累——java 反射 invoke
    Floodlight 启动过程分析
  • 原文地址:https://www.cnblogs.com/wangzepu/p/12055390.html
Copyright © 2020-2023  润新知