Binær til desimal konvertering i C++

Binaer Til Desimal Konvertering I C



I artikkelen vil vi se konvertering av binære verdier til desimalverdier i et C++-program. Det binære tallet er representert med sifrene 0 og 1, mens desimalverdiene inneholder sifrene som varierer fra 0 til 9. For å oppnå en binær-til-desimalkonvertering, bør den binære verdien multipliseres med 2 hevet til potensen ' n' starter fra høyre og beveger seg mot venstre med en høyere 'n'. La oss implementere dette i koden for å transformere en binær til en desimalverdi.

Eksempel 1: Program for binær til desimal ved bruk av 'While'-løkken

Vi har et følgende program for å konvertere tallet fra binært til desimal. Innenfor programmet bruker vi 'mens'-løkken for den binære konverteringen til desimal.

#include
#include

ved hjelp av navneområde std ;

int konverteringOfBin ( lang lang ) ;

int hoved- ( ) {
lang lang på en ;
cout << 'Binært tall påkrevd: ' ;
spiser >> på en ;
cout << på en << ' i binær = ' << konverteringOfBin ( på en ) << 'i desimal' ;
komme tilbake 0 ;
}

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

samtidig som ( på en ! = 0 ) {
rest = på en % 10 ;
på en / = 10 ;
des + = rest * pow ( 2 , x ) ;
++ x ;
}

komme tilbake ;
}

Her definerer vi 'iostream'-headerfilen for inngangs- og utdatastrømmene og 'cmath' for å bruke den matematiske funksjonen i programmet. Etter det definerer vi ConversionOfBin()-funksjonen der parameteren av typen 'long long' sendes. Deretter har vi et main() funksjonskall for å kjøre programmet. Vi erklærer en lang inter type variabel kalt 'num' inne i main() funksjonen.







Etter dette konverterer ConversionOfBin()-funksjonen det inngående binære tallet til desimaltallet. For dette har vi definisjonen av ConversionOfBin()-funksjonen etter driverkoden. ConversionOfBin()-funksjonen sendes med 'num'-variabelen som har det binære tallet. Deretter kaller vi 'mens'-løkken for å transformere det binære tallet i 'num' til en desimalverdi. Før dette initialiserer vi variablene 'deci', 'x' og 'resten' med verdien '0'.



Innenfor 'while'-løkken utføres divisjonsoperasjonen for å representere verdien lengst til høyre på det binære tallet. Divisjonsresultatene lagres i variabelen «resten». Deretter legger vi til resultatene av resten og potensresultatene i 'deci'-variabelen. 'x'-variabelen fortsetter å evaluere den aktive kraften til 2.



Resultatene av å konvertere de angitte binære tallene til desimalverdier oppnås i C++-konsollen:





Eksempel 2: Program for binær til desimal ved bruk av 'For'-løkken

Transformasjonen fra binær til desimal ble utført ved hjelp av en 'mens'-løkke. Imidlertid kan vi også bruke 'for'-løkkemetoden for å transformere de binære bitene til desimaltallet.



#include
#inkluder

int hoved- ( ) {
std :: streng bin ;
std :: cout << 'Skriv inn binært nummer: ' ;
std :: spiser >> bin ;

int des = 0 ;
int baseIs = 1 ;

til ( int en = bin. lengde ( ) - 1 ; en >= 0 ; en -- ) {
hvis ( bin [ en ] == '1' ) {
des + = baseIs ;
}
baseIs * = 2 ;
}

std :: cout << 'Resultater i desimal: ' << des << std :: endl ;

komme tilbake 0 ;
}

Her begynner vi med hoved()-funksjonsprogrammet der vi har 'std::string'-variabelen som er 'bin' for å lagre det binære tallet som er lagt inn av brukeren i ledeteksten. Til å begynne med vil spørsmålet be brukeren om å legge inn det binære tallet ved å bruke 'cout'-setningen. Deretter vil 'cin'-kommandoen lese det binære tallet. Etter det initialiserer vi 'dec'-variabelen med verdien '0' og 'baseIs'-variabelen med verdien '1' for å få desimalekvivalenten.

Deretter kaller vi en 'for'-løkke som går over hvert nummer i den angitte binæren fra høyre til venstre. Innenfor loopen har vi en 'hvis'-betingelse for å bekrefte om det binære tallet er 1. Hvis det er 1, legges desimalverdien til 'dec'-variabelen. Variabelen 'baseIs' har kraften 2 som skal multipliseres med 1 på hver iterasjon.

Verdien av det binære tallet og dets konvertering til desimalverdien vises på ledetekstskjermen:

Eksempel 3: Program for binær streng til desimal

Den binære strengverdien er nå definert for å konvertere verdien til desimalverdien. Følgende implementering er gjort for å transformere den binære strengverdien til desimalverdi:

#include
#inkluder
ved hjelp av navneområde std ;

int binToDec ( streng val )
{
strengverdi = val ;
int desimalverdi = 0 ;

int base_value = 1 ;

int bare = verdi. lengde ( ) ;
til ( int m = bare - 1 ; m >= 0 ; m -- ) {
hvis ( val [ m ] == '1' )
desimalverdi + = base_value ;
base_value = base_value * 2 ;
}

komme tilbake desimalverdi ;
}

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

Her begynner vi med å lage en BinToDec()-funksjon for konvertering av binære sifre til desimalverdier. BinToDec()-funksjonen tar 'val'-argumentet til strengtypen. Innenfor BinToDec()-funksjonen initialiserer vi 'verdi'-variabelen med 'val'-variabelen som representerer at verdien til 'val'-variabelen vil bli lagret i 'verdi'-variabelen. Deretter erklærer vi en ny variabel, 'desimal_verdi', som er tildelt en verdi på 0.

På samme måte settes «base_value»-variabelen og initialiseres med verdien 1. Deretter definerer vi «len»-variabelen der length()-funksjonen kalles for å få lengden på det binære tallet. Etter initialiseringen av variabelen har vi 'for' loop-iterasjon. 'For'-løkken itererer hvert binært tallsiffer fra høyre til venstre.

Etter det har vi en hoved()-funksjon der det binære tallet er spesifisert som en strengverdi til 'val'-variabelen som konverteres til desimalverdien som vi kaller BinToDec(val)-funksjonen med 'cout'-kommandoen.

Den binære verdien av strengtype konverteres nå til desimalverdien som vist i følgende:

Eksempel 4: Program for binær til desimal ved bruk av bitsettklassen

I tillegg kan vi konvertere det binære tallet til desimaltallet ved å definere 'bitsett'-klassen til C++ i programmet. Den inneholder funksjonene som gjør konverteringsprosedyren veldig enkel.

#include
#include

int hoved- ( ) {
std :: streng binærIs ;
std :: cout << 'Vennligst oppgi binært tall: ' ;
std :: spiser >> binærIs ;

std :: bitsett < 64 > binær ( binærIs ) ;
usignert lang desimalTall = binær. for lenge ( ) ;

std :: cout << 'Desimaltall: ' << desimalTall << std :: endl ;

komme tilbake 0 ;
}

Her setter vi 'bitset'-biblioteket til C++ i overskriften, noe som er veldig nyttig når du arbeider med binære verdier. Etter dette har vi en main() funksjonsdefinisjon der vi bruker 'std::string' for å erklære 'binaryIs'-variabelen. Variabelen 'binaryIs' lagrer verdien av binær i strengen. Deretter ber vi brukeren legge til det binære tallet i ledeteksten av brukeren, og det leses gjennom 'cin'-kommandoen. Etter dette justerer vi størrelsen på bitene som kan være 64 bits heltall. Deretter kalles to_ulong()-funksjonen fra 'bitset'-klassen til 'decimalNumber'-variabelen. To_ulong()-funksjonen konverterer settet med biter til en lang datatype uten fortegn. Til slutt bruker vi 'cout'-kommandoen for å skrive ut desimalverdien til den binære verdien som er gitt av brukeren.

Den binære verdien oppgitt av brukeren er nå konvertert til desimalverdien:

Konklusjon

Avslutningsvis dekket vi metodene for å konvertere en binær verdi til en desimalverdi. Vi brukte 'for'-løkken, 'while'-løkken og bitsett-klassen tilnærmingene for den binære konverteringen til desimal. Disse tilnærmingene forvandler de binære tallene til desimalsystemer som letter lesing og forståelse.