Binær til decimal konvertering i C++

Binaer Til Decimal Konvertering I C



I artiklen vil vi se konverteringen af ​​binære værdier til decimalværdier i et C++ program. Det binære tal er repræsenteret af 0- og 1-cifrene, hvorimod decimalværdierne indeholder cifrene, der går fra 0 til 9. For at opnå en binær-til-decimal-konvertering skal den binære værdi ganges med 2 hævet til potensen ' n' starter fra højre og bevæger sig mod venstre med et højere 'n'. Lad os implementere dette i koden for at transformere en binær til en decimalværdi.

Eksempel 1: Program for binær til decimal ved hjælp af 'While'-løkken

Vi har et følgende program til at konvertere tallet fra binær til decimal. Inden for programmet bruger vi 'mens'-løkken til den binære konvertering til decimal.

#include
#include

ved brug af navneområde std ;

int konverteringOfBin ( lang lang ) ;

int vigtigste ( ) {
lang lang på en ;
cout << 'Binært tal påkrævet:' ;
spise >> på en ;
cout << på en << ' i binær = ' << konverteringOfBin ( på en ) << 'i decimal' ;
Vend tilbage 0 ;
}

int konverteringOfBin ( lang lang på en ) {
int = 0 , x = 0 , resten ;

mens ( på en ! = 0 ) {
resten = på en % 10 ;
på en / = 10 ;
dec + = resten * pow ( 2 , x ) ;
++ x ;
}

Vend tilbage ;
}

Her definerer vi 'iostream'-headerfilen for input- og outputstrømmene og 'cmath' for at bruge den matematiske funktion i programmet. Derefter definerer vi ConversionOfBin()-funktionen, hvor parameteren af ​​typen 'long long' sendes. Dernæst har vi et main() funktionskald til at udføre programmet. Vi erklærer en lang inter type variabel kaldet 'num' inde i main() funktionen.







Efter dette konverterer ConversionOfBin()-funktionen det indgående binære tal til decimaltallet. Til dette har vi definitionen af ​​ConversionOfBin()-funktionen efter driverkoden. Funktionen ConversionOfBin() sendes med variablen 'num', som har det binære tal. Derefter kalder vi 'mens'-løkken for at transformere det binære tal i 'num' til en decimalværdi. Før dette initialiserer vi variablerne 'deci', 'x' og 'resten' med værdien '0'.



Inden for 'mens'-løkken udføres divisionsoperationen for at repræsentere værdien længst til højre af det binære tal. Delingsresultaterne gemmes i variablen 'rest'. Derefter tilføjer vi resultaterne af resten og effektresultaterne til 'deci'-variablen. 'x'-variablen bliver ved med at evaluere den aktive effekt af 2.



Resultaterne af konvertering af de angivne binære tal til decimalværdier opnås i C++-konsollen:





Eksempel 2: Program for binær til decimal ved hjælp af 'For'-løkken

Transformationen fra binær til decimal blev udført ved hjælp af en 'mens'-løkke. Men vi kan også bruge 'for'-løkkemetoden til at transformere de binære bits til decimaltallet.



#include
#inkluder

int vigtigste ( ) {
std :: snor beholder ;
std :: cout << 'Indtast binært nummer: ' ;
std :: spise >> beholder ;

int dec = 0 ;
int baseIs = 1 ;

til ( int -en = beholder. længde ( ) - 1 ; -en >= 0 ; -en -- ) {
hvis ( beholder [ -en ] == '1' ) {
dec + = baseIs ;
}
baseIs * = 2 ;
}

std :: cout << 'Resultater i decimaler: ' << dec << std :: endl ;

Vend tilbage 0 ;
}

Her begynder vi med main() funktionsprogrammet, hvor vi har 'std::string'-variablen, som er 'bin' til at gemme det binære tal, som brugeren indtaster i prompten. Indledningsvis vil prompten bede brugeren om at indtaste det binære tal ved hjælp af 'cout'-sætningen. Derefter vil 'cin'-kommandoen læse det binære tal. Derefter initialiserer vi 'dec'-variablen med værdien '0' og 'baseIs'-variablen med værdien '1' for at få decimalækvivalenten.

Derefter kalder vi en 'for'-løkke, som går over hvert nummer i den angivne binære fra højre mod venstre. Inden for løkken har vi en 'hvis'-betingelse for at verificere, om det binære tal er 1. Hvis det er 1, tilføjes decimalværdien til 'dec'-variablen. Variablen 'baseIs' har magten 2, der skal ganges med 1 ved hver iteration.

Værdien af ​​det binære tal og dets konvertering til decimalværdien vises på promptskærmen:

Eksempel 3: Program af binær streng til decimal

Den binære strengværdi er nu defineret til at konvertere dens værdi til decimalværdien. Følgende implementering udføres for at transformere den binære strengværdi til decimalværdi:

#include
#inkluder
ved brug af navneområde std ;

int binToDec ( streng val )
{
strengværdi = val ;
int decimal_værdi = 0 ;

int basisværdi = 1 ;

int kun = værdi. længde ( ) ;
til ( int m = kun - 1 ; m >= 0 ; m -- ) {
hvis ( val [ m ] == '1' )
decimal_værdi + = basisværdi ;
basisværdi = basisværdi * 2 ;
}

Vend tilbage decimal_værdi ;
}

int vigtigste ( )
{
streng val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Her begynder vi med at lave en BinToDec() funktion til konvertering af binære cifre til decimalværdier. BinToDec()-funktionen tager 'val'-argumentet af strengtypen. Inden for BinToDec()-funktionen initialiserer vi 'værdi'-variablen med 'val'-variablen, som repræsenterer, at værdien af ​​'val'-variablen vil blive gemt i 'værdi'-variablen. Derefter erklærer vi en ny variabel, 'decimal_værdi', som er tildelt en værdi på 0.

På samme måde indstilles 'base_value'-variablen og initialiseres med værdien 1. Dernæst definerer vi variablen 'len', hvor funktionen length() kaldes for at få længden af ​​det binære tal. Efter initialiseringen af ​​variablen har vi 'for' loop-iterationen. 'For'-løkken itererer hvert binært tal ciffer fra højre mod venstre.

Derefter har vi en main()-funktion, hvor det binære tal er angivet som en strengværdi til 'val'-variablen, som konverteres til decimalværdien, som vi kalder BinToDec(val)-funktionen med kommandoen 'cout'.

Den binære værdi af strengtype konverteres nu til decimalværdien som vist i følgende:

Eksempel 4: Program af binær til decimal ved brug af bitsætklassen

Derudover kan vi konvertere det binære tal til decimaltallet ved at definere 'bitset'-klassen for C++ i programmet. Det giver de funktioner, hvorigennem konverteringsproceduren er meget enkel.

#include
#include

int vigtigste ( ) {
std :: snor binærIs ;
std :: cout << 'Angiv venligst binært tal: ' ;
std :: spise >> binærIs ;

std :: bitsæt < 64 > binær ( binærIs ) ;
usigneret lang decimaltal = binær. for langt ( ) ;

std :: cout << 'Decimaltal: ' << decimaltal << std :: endl ;

Vend tilbage 0 ;
}

Her indstiller vi 'bitset'-biblioteket i C++ i headeren, hvilket er meget nyttigt, når du arbejder med binære værdier. Efter dette har vi en main() funktionsdefinition, hvor vi bruger 'std::strengen' til at erklære variablen 'binaryIs'. Variablen 'binaryIs' gemmer værdien af ​​binær i strengen. Dernæst beder vi brugeren om at tilføje det binære tal i prompten af ​​brugeren, og det læses gennem kommandoen 'cin'. Herefter justerer vi størrelsen på bits, som kan være 64 bit heltal. Derefter kaldes to_ulong()-funktionen fra 'bitset'-klassen til 'decimalNumber'-variablen. Funktionen to_ulong() konverterer sættet af bits til en lang datatype uden fortegn. Til sidst bruger vi kommandoen 'cout' til at udskrive decimalværdien af ​​den binære værdi, som er givet af brugeren.

Den binære værdi, som brugeren har angivet, konverteres nu til decimalværdien:

Konklusion

Afslutningsvis dækkede vi metoderne til at konvertere en binær værdi til en decimalværdi. Vi brugte 'for'-løkken, 'mens'-løkken og bitset-klassens tilgange til den binære konvertering til decimal. Disse tilgange transformerer de binære tal til decimalsystemer, hvilket letter læsning og forståelse.