From bf74ad362ff3b26a47168d6fe3f21b3d1b3d2fe5 Mon Sep 17 00:00:00 2001 From: Sarthak Joshi <100042684+Craniace@users.noreply.github.com> Date: Sat, 1 Nov 2025 00:01:31 +0530 Subject: [PATCH 1/2] Create bonary_to_gray.c --- conversions/bonary_to_gray.c | 55 ++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 conversions/bonary_to_gray.c diff --git a/conversions/bonary_to_gray.c b/conversions/bonary_to_gray.c new file mode 100644 index 0000000000..3088e9588f --- /dev/null +++ b/conversions/bonary_to_gray.c @@ -0,0 +1,55 @@ +#include +#include + +// Function to convert binary to decimal +int binaryToDecimal(long long binary) { + int decimal = 0, i = 0, remainder; + while (binary != 0) { + remainder = binary % 10; + binary /= 10; + decimal += remainder * pow(2, i); + ++i; + } + return decimal; +} + +// Function to convert decimal to binary +long long decimalToBinary(int decimal) { + long long binary = 0; + int remainder, i = 1; + + while (decimal != 0) { + remainder = decimal % 2; + decimal /= 2; + binary += remainder * i; + i *= 10; + } + return binary; +} + +// Function to convert binary to Gray code +long long binaryToGray(long long binary) { + // Convert binary to decimal first + int decimal = binaryToDecimal(binary); + + // Perform XOR between decimal and decimal right-shifted by 1 + int grayDecimal = decimal ^ (decimal >> 1); + + // Convert Gray code back to binary representation for display + return decimalToBinary(grayDecimal); +} + +int main() { + long long binary; + + printf("Enter a binary number: "); + scanf("%lld", &binary); + + // Validate input + long long temp = binary; + while (temp > 0) { + if (temp % 10 > 1) { + printf("❌ Invalid input! Please enter only 0s and 1s.\n"); + return 0; + } + temp /= 10; From 93858ba5808f2cd1e32de66ea1abaa0d4b3fee58 Mon Sep 17 00:00:00 2001 From: Sarthak Joshi <100042684+Craniace@users.noreply.github.com> Date: Sat, 1 Nov 2025 00:01:49 +0530 Subject: [PATCH 2/2] Rename bonary_to_gray.c to binary_to_gray.c --- conversions/{bonary_to_gray.c => binary_to_gray.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename conversions/{bonary_to_gray.c => binary_to_gray.c} (100%) diff --git a/conversions/bonary_to_gray.c b/conversions/binary_to_gray.c similarity index 100% rename from conversions/bonary_to_gray.c rename to conversions/binary_to_gray.c