Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्रामिंग में दशमलव से बाइनरी रूपांतरण (Decimal to Binary Conversion)

समस्या

C प्रोग्रामिंग भाषा में फ़ंक्शन का उपयोग करके दशमलव संख्या को बाइनरी संख्या में कैसे बदलें?

समाधान

इस प्रोग्राम में, हम main() में toBinary फ़ंक्शन को कॉल करते हैं। कॉल किया गया फ़ंक्शन वास्तविक रूपांतरण करता है।

तर्क


while (decimal != 0) {
    remainder = decimal % 2;      // शेष (0 या 1)
    binary = binary + remainder * factor;  // स्थान मूल्य जोड़ें
    factor = factor * 10;         // अगला स्थान मूल्य (1, 10, 100, 1000...)
    decimal = decimal / 2;        // 2 से विभाजित
}

प्रोग्राम 1: दशमलव से बाइनरी


#include <stdio.h>

long toBinary(int decimal);

int main() {
    long binary;
    int decimal;
    
    printf("कोई दशमलव संख्या दर्ज करें: ");
    scanf("%d", &decimal);
    
    binary = toBinary(decimal);
    
    printf("बाइनरी मान: %ld\n", binary);
    
    return 0;
}

long toBinary(int decimal) {
    long binary = 0, remainder, factor = 1;
    
    while (decimal != 0) {
        remainder = decimal % 2;
        binary = binary + remainder * factor;
        factor = factor * 10;
        decimal = decimal / 2;
    }
    
    return binary;
}

आउटपुट


कोई दशमलव संख्या दर्ज करें: 12
बाइनरी मान: 1100

चरण-दर-चरण ट्रेस (12 के लिए)

चरणdecimalremainderfactorbinary
112010
260100
331100100
41110001100
50--लूप समाप्त

प्रोग्राम 2: बाइनरी से दशमलव


#include <stdio.h>
#include <math.h>

int toDecimal(long binary);

int main() {
    long binary;
    int decimal;
    
    printf("बाइनरी संख्या दर्ज करें: ");
    scanf("%ld", &binary);
    
    decimal = toDecimal(binary);
    
    printf("दशमलव मान: %d\n", decimal);
    
    return 0;
}

int toDecimal(long binary) {
    int decimal = 0, i = 0, remainder;
    
    while (binary != 0) {
        remainder = binary % 10;
        binary /= 10;
        decimal += remainder * pow(2, i);
        ++i;
    }
    
    return decimal;
}

आउटपुट


बाइनरी संख्या दर्ज करें: 10011
दशमलव मान: 19

चरण-दर-चरण ट्रेस (10011 के लिए)

चरणbinaryremainderi2^idecimal
1100111011
210011123
31000243
4100383
51141619
60---लूप समाप्त

बेहतर दृष्टिकोण: बाइनरी स्ट्रिंग के रूप में आउटपुट

ऊपर दिया गया प्रोग्राम बाइनरी को पूर्णांक के रूप में लौटाता है (जो बड़ी संख्याओं के लिए ओवरफ्लो कर सकता है)। स्ट्रिंग के रूप में बेहतर:


#include <stdio.h>

void toBinaryString(int n, char *buffer) {
    int i = 0;
    if (n == 0) {
        buffer[0] = '0';
        buffer[1] = '\0';
        return;
    }
    
    // बिट्स को रिवर्स क्रम में निकालें
    char temp[32];
    while (n > 0) {
        temp[i++] = (n % 2) + '0';
        n /= 2;
    }
    
    // उल्टा करके buffer में कॉपी करें
    for (int j = 0; j < i; j++) {
        buffer[j] = temp[i - 1 - j];
    }
    buffer[i] = '\0';
}

int main() {
    char binary[33];
    toBinaryString(12345, binary);
    printf("12345 बाइनरी में: %s\n", binary);
    return 0;
}

आउटपुट


12345 बाइनरी में: 11000000111001

बिटवाइज़ ऑपरेटर का उपयोग करके (अधिक कुशल)


void printBinary(int n) {
    // 32-बिट int के लिए
    for (int i = 31; i >= 0; i--) {
        int bit = (n >> i) & 1;
        printf("%d", bit);
        if (i % 4 == 0) printf(" ");  // 4-बिट समूह
    }
    printf("\n");
}
  1. C++ में डेसिमल से बाइनरी रूपांतरण C++ में डेसिमल से बाइनरी रूपांतरण

    एक डेसिमल संख्या इनपुट के रूप में दी गई है, कार्य दी गई डेसिमल संख्या को बाइनरी संख्या में बदलना है। कंप्यूटर में डेसिमल संख्या को आधार 10 के साथ दर्शाया जाता है और बाइनरी संख्या को आधार 2 के साथ दर्शाया जाता है क्योंकि इसमें केवल दो बाइनरी अंक 0 और 1 होते हैं जबकि डेसिमल संख्याएं 0-9 से शुरू होने व

  1. C++ में बाइनरी से डेसिमल रूपांतरण C++ में बाइनरी से डेसिमल रूपांतरण

    एक बाइनरी संख्या इनपुट के रूप में दी गई है, कार्य दी गई बाइनरी संख्या को डेसिमल संख्या में बदलना है। कंप्यूटर में डेसिमल संख्या को आधार 10 के साथ दर्शाया जाता है और बाइनरी संख्या को आधार 2 के साथ दर्शाया जाता है क्योंकि इसमें केवल दो बाइनरी अंक 0 और 1 होते हैं जबकि डेसिमल संख्याएं 0-9 से शुरू होने व

  1. - Python में रिकर्सन का उपयोग करके दशमलव को बाइनरी में कैसे बदलें?

    Python में रिकर्सन का उपयोग करके दशमलव से बाइनरी रूपांतरण एक दशमलव संख्या का बाइनरी समकक्ष 2 से क्रमिक विभाजन के शेष को उल्टे क्रम में प्रिंट करके प्राप्त किया जाता है। इस रूपांतरण का रिकर्सिव समाधान इस प्रकार है: 1: tobin(x // 2) print(x % 2, end=) num = int(input(एक संख्या दर्ज करें