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

C++ में बाइनरी से दशमलव के लिए पुनरावर्ती प्रोग्राम


हमें एक स्ट्रिंग दी गई है जिसमें एक बाइनरी संख्या है। लक्ष्य है पुनरावर्ती विधि का उपयोग करके समतुल्य दशमलव संख्या ढूंढना।

एक बाइनरी संख्या को निम्न विधि का उपयोग करके दशमलव में बदला जा सकता है-: LSB से MSB तक ट्रैवर्स करें और प्रत्येक को 2i की घात से गुणा करें जहां 0<=i<=अंकों की संख्या और इसमें पिछले सभी परिणामों को जोड़ें।

विभिन्न इनपुट-आउटपुट परिदृश्य

इनपुट - binStr[] = "110010"

आउटपुट - दी गई बाइनरी का समतुल्य दशमलव: 50

व्याख्या- यदि हम 110010 को दशमलव में बदलते हैं तो संख्या होगी:-

= 0*20 +1*21+0*22+0*23+1*24+1*25

= 0+2+0+0+16+32

= 50

इनपुट - binStr[] = "0011"

आउटपुट - दी गई बाइनरी का समतुल्य दशमलव: 3

व्याख्या - यदि हम 110010 को दशमलव में बदलते हैं तो संख्या होगी:-

= 1*20+1*21 +0*22 +0*23

= 1+2+0+0

= 3

उपयोग किया गया दृष्टिकोण

इस दृष्टिकोण में हम पुनरावर्ती फ़ंक्शन bintoDecimal(strBin,length) का उपयोग कर रहे हैं जो इनपुट स्ट्रिंग और इसकी लंबाई लेता है और प्रत्येक वर्ण के लिए इसे दशमलव में बदलता है और इसे 2i से गुणा करता है। इसमें पिछले परिणामों को जोड़ता है।

  • बाइनरी संख्या वाली इनपुट स्ट्रिंग strBin[] लें।

  • strlen(strBin) का उपयोग करके इसकी लंबाई की गणना करें।

  • फ़ंक्शन bintoDecimal(strBin,length) इनपुट लेता है और पुनरावर्ती दृष्टिकोण का उपयोग करके गणना की गई संख्या लौटाता है।

  • यदि हम अंतिम वर्ण पर हैं जो LSB है, तो इसका दशमलव लौटाएं क्योंकि यह समान होगा (1 यानी 20 से गुणा)।

  • अन्यथा temp=binary[i]-'0' सेट करें। इसका दशमलव मान।

  • अब temp को 2len-i-1 से temp<

  • अन्य अंकों के परिणाम को temp में temp=temp+bintoDecimal(binary,len,i+1) का उपयोग करके जोड़ें।

  • पुनरावर्तन के अंत में temp लौटाएं।

  • main में गणना किया गया दशमलव प्रिंट करें।

उदाहरण

#include<bits/stdc++.h> using namespace std; int bintoDecimal(char binary[],int len, int i=0){    if (i == len-1)    return (binary[i] - '0');    int temp=binary[i]-'0';    temp=temp<<len-i-1;    temp=temp+bintoDecimal(binary,len,i+1);    return (temp); } int main(){    char strBin[] = "11010";    int length=strlen(strBin);    cout <<"Equivalent Decimal of given binary: "<<bintoDecimal(strBin,length) << endl;    return 0; }

आउटपुट

उपरोक्त कोड चलाने पर निम्नलिखित आउटपुट उत्पन्न होगा:

Equivalent Decimal of given binary: 26

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

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

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

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

  1. C++ में पिरामिड के आयतन का प्रोग्राम C++ में पिरामिड के आयतन का प्रोग्राम

    पिरामिड के बेस के प्रकार के आधार पर भुजाएं दी गई हैं, कार्य पिरामिड का आयतन गणना करना है।पिरामिड एक 3-D आकृति है जिसकी बाहरी सतहें त्रिकोणीय हैं जो सामान्य बिंदु पर मिलती हैं जिससे पिरामिड का तीक्ष्ण किनारा बनता है। पिरामिड का आयतन उसके बेस के प्रकार पर निर्भर करता है।पिरामिड के बेस के विभिन्न प्रका