zoukankan      html  css  js  c++  java
  • 进制转换--力扣第504题

    题目:

    给定一个整数,将其转化为7进制,并以字符串形式输出。

    分析:

    核心就是十进制转换为七进制,做法就是利用/和%这两个运算符,%为了计算当前进制位应该表示为几(从右向左),/是为了从左向右计算在当前的进制位下是否应该继续向左延申,即如果在截止到当前进制位表达不够输入的十进制数,

    那就要向左延申进制位,每次延申都会除以7,除以7是因为逢7进位。

    比如  100转为7进制数,

      100%7=2,100/7=14,当前进制位是七进制数第一位,该位数值是2

      14%7=0,14/7=2,当前进制位是七进制第二位,由于余数为0,该位数值为0

      此时 2 > 7,停止循环,最终的100的七进制数就是202

    具体的代码实现如下:

        public String convertToBase7(int num) {
            if (num < 7 && num > -7){
                return num+"";
            }
            int flag = 0;
            if (num < 0){
                flag = 1;
                num = Math.abs(num);
            }
            StringBuilder res = new StringBuilder("");
            int y = num % 7;
            int n = num / 7;
            res = res.append(y);
            while(n >= 7){
                y = n % 7;
                n = n / 7;
                res.append(y);
            }
            res.append(n);
            if (flag == 1){
                res.append('-');
            }
            return res.reverse().toString();
        }

    此外,Java很贴心,Integer类自带了有将一个十进制数转为指定进制数,并转换为字符串的函数,即 static String toString(int num, int radix) 可以将一个整数转换为 radix 进制表示的字符串。

    public String convertToBase7(int num) {
        return Integer.toString(num, 7);
    }
  • 相关阅读:
    初识java反射机制
    基本数据类型-保装类型-string三种数据类型的转换
    java 正则表达式
    java 异常
    java 初识String
    java 接口
    java抽象
    初识多态 简单理解
    初来驾到学JAVA继承初识
    转载:Gearman php
  • 原文地址:https://www.cnblogs.com/yxym2016/p/12969439.html
Copyright © 2011-2022 走看看