From 7ad4dd07a2ac020972691e3e7d8c607e81eda1b8 Mon Sep 17 00:00:00 2001 From: BamaCharanChhandogi Date: Sun, 13 Aug 2023 14:20:02 +0530 Subject: [PATCH] code scratch --- conversions/octal_to_binary.py | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/conversions/octal_to_binary.py b/conversions/octal_to_binary.py index c24fed4e2..48075b8df 100644 --- a/conversions/octal_to_binary.py +++ b/conversions/octal_to_binary.py @@ -1,10 +1,5 @@ -def octal_to_binary(octal_number: str) -> str: +def octal_to_binary(octal_number): """ - /** - * Converts any Octal Number to a Binary Number - * - * @author Bama Charan Chhandogi - */ Convert an octal number to binary. Args: @@ -12,19 +7,23 @@ def octal_to_binary(octal_number: str) -> str: Returns: str: The binary representation of the octal number. - - Examples: - >>> octal_to_binary("34") - '0b11100' - >>> octal_to_binary("777") - '0b111111111' """ - decimal_number = int(octal_number, 8) - binary_number = bin(decimal_number) - return binary_number + binary_number = "" + octal_digits = "01234567" + for digit in octal_number: + if digit not in octal_digits: + raise ValueError("Invalid octal digit") + + binary_digit = "" + value = int(digit) + for _ in range(3): + binary_digit = str(value % 2) + binary_digit + value //= 2 + binary_number += binary_digit + + return binary_number if __name__ == "__main__": import doctest - - doctest.testmod() + doctest.testmod() \ No newline at end of file