java - Java中的十进制到十六进制转换器

标签 java hex decimal converter

我有一个家庭作业,我需要在十进制、二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎不了解十六进制,但是如何将十进制转换为十六进制。我需要一个接收 int dec 并返回 String hex 的函数。不幸的是,我没有这个功能的任何草稿,我完全迷路了。我只有这个。

  public static String decToHex(int dec)
  {
    String hex = "";


    return hex;
  }

我也不能使用像 Integer.toHexString() 这样的预制函数或任何东西,我需要实际制作算法,否则我什么都学不到。

最佳答案

一种可能的解决方案:

import java.lang.StringBuilder;

class Test {
  private static final int sizeOfIntInHalfBytes = 8;
  private static final int numberOfBitsInAHalfByte = 4;
  private static final int halfByte = 0x0F;
  private static final char[] hexDigits = { 
    '0', '1', '2', '3', '4', '5', '6', '7', 
    '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'
  };

  public static String decToHex(int dec) {
    StringBuilder hexBuilder = new StringBuilder(sizeOfIntInHalfBytes);
    hexBuilder.setLength(sizeOfIntInHalfBytes);
    for (int i = sizeOfIntInHalfBytes - 1; i >= 0; --i)
    {
      int j = dec & halfByte;
      hexBuilder.setCharAt(i, hexDigits[j]);
      dec >>= numberOfBitsInAHalfByte;
    }
    return hexBuilder.toString(); 
  }

  public static void main(String[] args) {
     int dec = 305445566;
     String hex = decToHex(dec);
     System.out.println(hex);       
  }
}

输出:

1234BABE

无论如何,有一个库方法:

String hex = Integer.toHexString(dec);

关于java - Java中的十进制到十六进制转换器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13465098/

相关文章:

java - SharedPreferences 导致应用程序在 Android 中使用选项卡时强制关闭

java - 数组为空。未从 while 循环获取信息

java - 如何使用 Gson 以十六进制表示整数?

mysql - 显示十六进制而不是文本的 View

jQuery Flot - 显示准确的值

java - 将文件读取为二维字符数组

java - 如何在Java代码中以函数为参数调用Kotlin函数?

go - 解码base64并将其编码为十六进制

ios - 十进制转二进制的方法Objective-C

c++ - C++中的小数精度错误