Java中的十进制到十六进制转换器 [英] Decimal to Hexadecimal Converter in Java
问题描述
我有一项家庭作业,需要在十进制,二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎没有理解十六进制,但如何将十进制转换为十六进制。我需要一个函数,它接受 int dec
并返回一个字符串十六进制
。不幸的是我没有这个功能的草稿,我完全失去了。
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',$ b'b'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;
字符串十六进制= decToHex(十进制);
System.out.println(hex);
$ / code $ / pre
$ b $输出:
1234BABE
无论如何,库方法:
字符串十六进制= Integer.toHexString(十进制);
I have a homework assignment where I need to do three-way conversion between decimal, binary and hexadecimal. The function I need help with is converting a decimal into a hexadecimal. I have nearly no understanding of hexadecimal, nonetheless how to convert a decimal into hex. I need a function that takes in an int dec
and returns a String hex
. Unfortunately I don't have any draft of this function, I'm completely lost. All I have is this.
public static String decToHex(int dec)
{
String hex = "";
return hex;
}
Also I can't use those premade functions like Integer.toHexString() or anything, I need to actually make the algorithm or I wouldn't have learned anything.
解决方案 One possible solution:
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);
}
}
Output:
1234BABE
Anyway, there is a library method for this:
String hex = Integer.toHexString(dec);
这篇关于Java中的十进制到十六进制转换器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!