• java任意进制转换


    java任意进制转换

    前言

    我们正常使用的是十进制,计算机使用的是二进制,初次之外还有很多不同的进制,但是转换方法都相似,这里就整理一下java的进制转换。

    调用函数

    十进制转十六进制
    Integer.toHexString(int i)

    十进制转八进制
    Integer.toOctalString(int i)

    十进制转二进制
    Integer.toBinaryString(int i)

    十六进制转十进制(二进制八进制类似)
    Integer.valueOf("FFFF",16).toString()

    写的代码

    这里还写了一段java代码,可以用于进行16进制之内的转换,如果想要增加,只要修改radix数组即可。
    两个函数,一个是其他进制转十进制的,一个是十进制转任意进制的。用的都是基础算法,按位乘和取余。
    (话说我没有考虑过输入异常,比如0进制什么的)

      static char[] radix = new char[]{'0','1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd',
          'e', 'f'};
    
      static int transRadixtoTen(String num, int fromRadix) {
        StringBuilder s = new StringBuilder(num);
        int number = 0;
        for (int i = 0; i < s.length(); i++) {
          char temp = s.charAt(i);
          if (temp <= '9' && temp >= '0') {
            number += temp - '0';
    
          } else if (temp <= 'z' && temp >= 'a') {
            number += temp - 'a' + 10;
    
          } else if (temp <= 'Z' && temp >= 'A') {
            number += temp - 'A' + 10;
    
          }
          if (i != s.length() - 1) {
            number *= fromRadix;
          }
        }
        return number;
      }
    
      static String transRadixtoOther(String num, int fromRadix, int toRadix) {
        int number = transRadixtoTen(num, fromRadix);
        System.out.println(number);
        StringBuilder s = new StringBuilder();
        while (number != 0) {
          s.append(radix[number % toRadix]);
          number = number / toRadix;
        }
        return s.reverse().toString();
      }
    
  • 相关阅读:
    HTML-利用CSS和JavaScript制作一个切换图片的网页
    HTML-★★★格式与布局fixed/absolute/relative/z-index/float★★★
    HTML-CSS样式表-★★★常用属性★★★及基本概念、分类、选择器
    HTML-★★★★★表单★★★★★
    HTML-图片热点、网页内嵌、网页拼接、快速切图
    HTML-常用标签与表格标签
    HTML-基础及一般标签
    C#-★结构体★
    C#-函数的传值与传址
    C#-★★函数★★
  • 原文地址:https://www.cnblogs.com/blogxjc/p/12345062.html
Copyright © 2020-2023  润新知