Skip to content

Commit 023ddee

Browse files
authored
Merge pull request TheAlgorithms#697 from arodriguez33/Development
Conversion
2 parents fe277cf + a3b4e14 commit 023ddee

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package src.main.java.com.conversions;
2+
3+
import java.math.BigInteger;
4+
5+
public class DecimalToHexadecimal {
6+
private static final char hexChars[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
7+
private static final BigInteger valueHex = new BigInteger("16");
8+
9+
/**
10+
* This method converts and decimal number to a Hexadecimal number
11+
* @param decimalStr
12+
* @return hexadecimal number
13+
*/
14+
public String decimalToHex(String decimalStr){
15+
BigInteger decimal = new BigInteger(decimalStr);
16+
17+
int rem;
18+
String hex = "";
19+
while (decimal.compareTo(BigInteger.ZERO) > 0) {
20+
rem = decimal.mod(valueHex).intValueExact();
21+
hex = hexChars[rem] + hex;
22+
decimal = decimal.divide(valueHex);
23+
}
24+
return hex;
25+
}
26+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package src.test.java.com.conversions;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class DecimalToHexadecimalTest {
7+
8+
@Test
9+
public void testDecimalToHexadecimalTest() {
10+
DecimalToHexadecimal decimalToHexadecimal = new DecimalToHexadecimal();
11+
Assert.assertEquals("Incorrect Conversion", "F", decimalToHexadecimal.decimalToHex("15"));
12+
Assert.assertEquals("Incorrect Conversion", "121", decimalToHexadecimal.decimalToHex("289"));
13+
Assert.assertEquals("Incorrect Conversion", "AAAAAAAAAAAAAAAAAA1", decimalToHexadecimal.decimalToHex("50371909150609548946081"));
14+
Assert.assertEquals("Incorrect Conversion", "A", decimalToHexadecimal.decimalToHex("10"));
15+
Assert.assertEquals("Incorrect Conversion", "8B2F", decimalToHexadecimal.decimalToHex("35631"));
16+
}
17+
}

0 commit comments

Comments
 (0)