From 38c3960c417d4b928a2b4881392748ab69d6df0d Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 28 May 2023 03:18:06 +0530 Subject: [PATCH 1/5] Octal To Binary Conerter --- .../conversions/OctalToBinary.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/com/thealgorithms/conversions/OctalToBinary.java diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java new file mode 100644 index 000000000000..eb5deef5a878 --- /dev/null +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -0,0 +1,46 @@ +package com.thealgorithms.conversions; +import java.util.Scanner; +public class OctalToBinary { + public static void main(String[] args) { + Scanner scanner = new Scanner(System.in); + System.out.print("Enter an octal number: "); + String octalNumber = scanner.nextLine(); + + // Convert octal to binary + String binaryNumber = convertOctalToBinary(octalNumber); + + System.out.println("Binary equivalent: " + binaryNumber); + } + + public static String convertOctalToBinary(String octalNumber) { + StringBuilder binaryNumber = new StringBuilder(); + + for (int i = 0; i < octalNumber.length(); i++) { + char octalDigitChar = octalNumber.charAt(i); + int octalDigit = Character.getNumericValue(octalDigitChar); + + String binaryDigit = convertOctalDigitToBinary(octalDigit); + binaryNumber.append(binaryDigit); + } + + return binaryNumber.toString(); + } + + public static String convertOctalDigitToBinary(int octalDigit) { + StringBuilder binaryDigit = new StringBuilder(); + + while (octalDigit != 0) { + int octalDigitRemainder = octalDigit % 2; + binaryDigit.insert(0, octalDigitRemainder); + + octalDigit /= 2; + } + + // Add leading zeros if necessary + while (binaryDigit.length() < 3) { + binaryDigit.insert(0, "0"); + } + + return binaryDigit.toString(); + } +} From cbc792045e15d5d94a2f5233db6ed323731ceb80 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 28 May 2023 10:55:27 +0530 Subject: [PATCH 2/5] Octal To Binary Conerter and added test case --- .../conversions/OctalToBinary.java | 45 +++++++++++-------- .../OctalToBinaryConverterTest.java | 15 +++++++ 2 files changed, 41 insertions(+), 19 deletions(-) create mode 100644 src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java index eb5deef5a878..fa1ca10a482d 100644 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -1,46 +1,53 @@ package com.thealgorithms.conversions; import java.util.Scanner; + +/** + * Converts any Binary Number to a Hexadecimal Number + * + * @author Bama Charan Chhandogi + */ + public class OctalToBinary { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Enter an octal number: "); - String octalNumber = scanner.nextLine(); + int octalNumber = scanner.nextInt(); // Convert octal to binary - String binaryNumber = convertOctalToBinary(octalNumber); + long binaryNumber = convertOctalToBinary(octalNumber); System.out.println("Binary equivalent: " + binaryNumber); } - public static String convertOctalToBinary(String octalNumber) { - StringBuilder binaryNumber = new StringBuilder(); + public static long convertOctalToBinary(int octalNumber) { + long binaryNumber = 0; + int digitPosition = 1; + + while (octalNumber != 0) { + int octalDigit = octalNumber % 10; + long binaryDigit = convertOctalDigitToBinary(octalDigit); - for (int i = 0; i < octalNumber.length(); i++) { - char octalDigitChar = octalNumber.charAt(i); - int octalDigit = Character.getNumericValue(octalDigitChar); + binaryNumber += binaryDigit * digitPosition; - String binaryDigit = convertOctalDigitToBinary(octalDigit); - binaryNumber.append(binaryDigit); + octalNumber /= 10; + digitPosition *= 1000; // Move to the next group of 3 binary digits } - return binaryNumber.toString(); + return binaryNumber; } - public static String convertOctalDigitToBinary(int octalDigit) { - StringBuilder binaryDigit = new StringBuilder(); + public static long convertOctalDigitToBinary(int octalDigit) { + long binaryDigit = 0; + int binaryMultiplier = 1; while (octalDigit != 0) { int octalDigitRemainder = octalDigit % 2; - binaryDigit.insert(0, octalDigitRemainder); + binaryDigit += octalDigitRemainder * binaryMultiplier; octalDigit /= 2; + binaryMultiplier *= 10; } - // Add leading zeros if necessary - while (binaryDigit.length() < 3) { - binaryDigit.insert(0, "0"); - } - - return binaryDigit.toString(); + return binaryDigit; } } diff --git a/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java b/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java new file mode 100644 index 000000000000..2ff557e00a10 --- /dev/null +++ b/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java @@ -0,0 +1,15 @@ +package com.thealgorithms.conversions; + +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +public class OctalToBinaryConverterTest { + @Test + public void testConvertOctalToBinary() { + assertEquals(101, OctalToBinary.convertOctalToBinary(5)); + assertEquals(1001, OctalToBinary.convertOctalToBinary(11)); + assertEquals(101010, OctalToBinary.convertOctalToBinary(52)); + assertEquals(110, OctalToBinary.convertOctalToBinary(6)); + } +} From 723a2191840915bf0c9b86e4a8efc8670bedd82b Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 28 May 2023 18:28:53 +0530 Subject: [PATCH 3/5] rename OctalToBinaryTest --- .../{OctalToBinaryConverterTest.java => OctalToBinaryTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename src/test/java/com/thealgorithms/conversions/{OctalToBinaryConverterTest.java => OctalToBinaryTest.java} (91%) diff --git a/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java b/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java similarity index 91% rename from src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java rename to src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java index 2ff557e00a10..6c7fe8702b68 100644 --- a/src/test/java/com/thealgorithms/conversions/OctalToBinaryConverterTest.java +++ b/src/test/java/com/thealgorithms/conversions/OctalToBinaryTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; -public class OctalToBinaryConverterTest { +public class OctalToBinaryTest { @Test public void testConvertOctalToBinary() { assertEquals(101, OctalToBinary.convertOctalToBinary(5)); From beaf6290150688f4515116ac175cb5b2c18ff4ba Mon Sep 17 00:00:00 2001 From: Bama Charan Chhandogi Date: Sun, 28 May 2023 18:48:19 +0530 Subject: [PATCH 4/5] Update OctalToBinary.java --- src/main/java/com/thealgorithms/conversions/OctalToBinary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java index fa1ca10a482d..1c9fd310ea50 100644 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -2,7 +2,7 @@ import java.util.Scanner; /** - * Converts any Binary Number to a Hexadecimal Number + * Converts any Octal Number to a Binary Number * * @author Bama Charan Chhandogi */ From 080df2696baa5eb2e4cdca0afcd7e1c50aeb6350 Mon Sep 17 00:00:00 2001 From: Andrii Siriak Date: Sun, 28 May 2023 23:43:16 +0300 Subject: [PATCH 5/5] Update src/main/java/com/thealgorithms/conversions/OctalToBinary.java --- .../com/thealgorithms/conversions/OctalToBinary.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java index 1c9fd310ea50..711381d82a8e 100644 --- a/src/main/java/com/thealgorithms/conversions/OctalToBinary.java +++ b/src/main/java/com/thealgorithms/conversions/OctalToBinary.java @@ -8,17 +8,6 @@ */ public class OctalToBinary { - public static void main(String[] args) { - Scanner scanner = new Scanner(System.in); - System.out.print("Enter an octal number: "); - int octalNumber = scanner.nextInt(); - - // Convert octal to binary - long binaryNumber = convertOctalToBinary(octalNumber); - - System.out.println("Binary equivalent: " + binaryNumber); - } - public static long convertOctalToBinary(int octalNumber) { long binaryNumber = 0; int digitPosition = 1;