zoukankan      html  css  js  c++  java
  • 进制转化相关问题

    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;
    
        }
     
  • 相关阅读:
    spring中Bean的生命周期
    java之多线程
    struts2配置详解
    值栈
    数据校验和国际化
    2016年9月23日试题整理
    SpringMVC 文件上传下载
    CSS3 新增属性
    SpringMVC数据校验
    java中进程与线程--三种实现方式
  • 原文地址:https://www.cnblogs.com/wangzepu/p/12055390.html
Copyright © 2011-2022 走看看