Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions src/main/java/com/thealgorithms/conversions/OctalToBinary.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.thealgorithms.conversions;
import java.util.Scanner;

/**
* Converts any Octal Number to a Binary Number
*
* @author Bama Charan Chhandogi
*/

public class OctalToBinary {
public static long convertOctalToBinary(int octalNumber) {
long binaryNumber = 0;
int digitPosition = 1;

while (octalNumber != 0) {
int octalDigit = octalNumber % 10;
long binaryDigit = convertOctalDigitToBinary(octalDigit);

binaryNumber += binaryDigit * digitPosition;

octalNumber /= 10;
digitPosition *= 1000; // Move to the next group of 3 binary digits
}

return binaryNumber;
}

public static long convertOctalDigitToBinary(int octalDigit) {
long binaryDigit = 0;
int binaryMultiplier = 1;

while (octalDigit != 0) {
int octalDigitRemainder = octalDigit % 2;
binaryDigit += octalDigitRemainder * binaryMultiplier;

octalDigit /= 2;
binaryMultiplier *= 10;
}

return binaryDigit;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.thealgorithms.conversions;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

public class OctalToBinaryTest {
@Test
public void testConvertOctalToBinary() {
assertEquals(101, OctalToBinary.convertOctalToBinary(5));
assertEquals(1001, OctalToBinary.convertOctalToBinary(11));
assertEquals(101010, OctalToBinary.convertOctalToBinary(52));
assertEquals(110, OctalToBinary.convertOctalToBinary(6));
}
}