Java中的十进制到十六进制转换

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

  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中的十进制到十六进制转换 - 代码日志