Skip to content

Commit 6312a1e

Browse files
committed
binary number in 64 bits
1 parent 2bcc4c9 commit 6312a1e

File tree

2 files changed

+11
-8
lines changed

2 files changed

+11
-8
lines changed

src/main/java/com/conversions/BinaryToHexadecimal.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package src.main.java.com.conversions;
22

3+
import java.math.BigInteger;
34
import java.util.HashMap;
45

56
public class BinaryToHexadecimal {
@@ -12,7 +13,7 @@ public class BinaryToHexadecimal {
1213
* @return The hexadecimal number
1314
*/
1415

15-
public String binToHex(long binary) {
16+
public String binToHex(BigInteger binary) {
1617
//hm to store hexadecimal codes for binary numbers within the range: 0000 to 1111 i.e. for decimal numbers 0 to 15
1718
HashMap<Integer,String> hmHexadecimal = new HashMap<>();
1819

@@ -25,14 +26,15 @@ public String binToHex(long binary) {
2526
for(i=10 ; i<16 ; i++)
2627
hmHexadecimal.put(i,String.valueOf((char)('A'+i-10)));
2728

28-
long currentbit;
29-
while(binary != 0) {
29+
int currentbit;
30+
BigInteger tenValue = new BigInteger("10");
31+
while(binary.compareTo(BigInteger.ZERO) != 0) {
3032
int code4 = 0; //to store decimal equivalent of number formed by 4 decimal digits
3133
for(i=0 ; i<4 ; i++)
3234
{
33-
currentbit = binary % 10;
34-
binary = binary / 10;
35-
code4 += currentbit * Math.pow(2, i);
35+
currentbit = binary.mod(tenValue).intValueExact();
36+
binary = binary.divide(tenValue);
37+
code4 += currentbit*Math.pow(2, i);
3638
}
3739
hex= hmHexadecimal.get(code4) + hex;
3840
}

src/test/java/com/conversions/BinaryToHexadecimalTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ public class BinaryToHexadecimalTest {
99
@Test
1010
public void testBinaryToHexadecimal(){
1111
BinaryToHexadecimal binaryToHexadecimal = new BinaryToHexadecimal();
12-
Assert.assertEquals("Incorrect Conversion", "2A", binaryToHexadecimal.binToHex(101010));
13-
Assert.assertEquals("Incorrect Conversion", "24", binaryToHexadecimal.binToHex(100100));
12+
Assert.assertEquals("Incorrect Conversion", "2A", binaryToHexadecimal.binToHex(new BigInteger("101010")));
13+
Assert.assertEquals("Incorrect Conversion", "24", binaryToHexadecimal.binToHex(new BigInteger("100100")));
14+
Assert.assertEquals("Incorrect Conversion", "AAAAAAAAAAAAAAAAAA1", binaryToHexadecimal.binToHex(new BigInteger("1010101010101010101010101010101010101010101010101010101010101010101010100001")));
1415
}
1516
}

0 commit comments

Comments
 (0)