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

C++ में द्विआधारी से दशमलव के लिए पुनरावर्ती कार्यक्रम

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

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

आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -

इनपुट − बिनस्ट्र [] ="110010"

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

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

=0*2 0 +1*2 1 +0*2 2 +0*2 3 +1*2 4 +1*2 5

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

=50

इनपुट -बिनस्ट्र[] ="0011"

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

स्पष्टीकरण − अगर हम 110010 को दशमलव में बदलते हैं तो संख्या होगी:-

=1*2 0 +1*2 1 +0*2 2 +0*2 3

=1+2+0+0

=3

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

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

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

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

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

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

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

  • अब तापमान को 2 से गुणा करें len-i-1 अस्थायी का उपयोग करना<

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

  • रिकर्सन वापसी अस्थायी के अंत में।

  • परिकलित दशमलव को मुख्य रूप से प्रिंट करें।

उदाहरण

#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++ में दशमलव से बाइनरी रूपांतरण के लिए कार्यक्रम

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

  1. C++ में द्विआधारी से दशमलव रूपांतरण के लिए कार्यक्रम

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

  1. सी++ में पिरामिड के आयतन के लिए कार्यक्रम

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