Conversie binară în zecimală în C++

Conversie Binara In Zecimala In C



În articol, vom vedea conversia valorilor binare în valori zecimale într-un program C++. Numărul binar este reprezentat de cifrele 0 și 1, în timp ce valorile zecimale conțin cifrele care variază de la 0 la 9. Pentru a realiza o conversie binar în zecimal, valoarea binară trebuie înmulțită cu 2 ridicată la puterea lui „ n” începând de la dreapta și deplasându-se spre stânga cu un „n” mai mare. Să implementăm acest lucru în cod pentru a transforma o valoare binară într-o valoare zecimală.

Exemplul 1: Programul de la binar la zecimal folosind bucla „While”.

Avem următorul program pentru a converti numărul din binar în zecimal. În cadrul programului, folosim bucla „while” pentru conversia binară în zecimală.

#include
#include

folosind spatiu de nume std ;

int conversionOfBin ( lung lung ) ;

int principal ( ) {
lung lung pe unu ;
cout << „Număr binar necesar:” ;
mâncând >> pe unu ;
cout << pe unu << ' în binar = ' << conversionOfBin ( pe unu ) << 'în zecimală' ;
întoarcere 0 ;
}

int conversionOfBin ( lung lung pe unu ) {
int deci = 0 , X = 0 , rest ;

in timp ce ( pe unu ! = 0 ) {
rest = pe unu % 10 ;
pe unu / = 10 ;
dec + = rest * pow ( 2 , X ) ;
++ X ;
}

întoarcere deci ;
}

Aici definim fișierul antet „iostream” pentru fluxurile de intrare și ieșire și „cmath” pentru a utiliza funcția matematică din program. După aceea, definim funcția ConversionOfBin() în care este trecut parametrul de tip „long long”. În continuare, avem un apel de funcție main() pentru a executa programul. Declaram o variabila lunga inter tip numita „num” in interiorul functiei main().







După aceasta, funcția ConversionOfBin() convertește numărul binar de intrare în număr zecimal. Pentru aceasta, avem definitia functiei ConversionOfBin() dupa codul driverului. Funcția ConversionOfBin() este transmisă cu variabila „num” care are numărul binar. Apoi, numim bucla „while” pentru a transforma numărul binar în „num” într-o valoare zecimală. Înainte de aceasta, inițializam variabilele „deci”, „x” și „restul” cu valoarea „0”.



În cadrul buclei „while”, operația de împărțire este efectuată pentru a reprezenta valoarea cea mai din dreapta a numărului binar. Rezultatele împărțirii sunt stocate în variabila „restul”. Apoi, adăugăm rezultatele restului și rezultatele puterii în variabila „deci”. Variabila „x” continuă să evalueze puterea activă a lui 2.



Rezultatele conversiei numerelor binare specificate în valori zecimale sunt obținute în consola C++:





Exemplul 2: Programul de la binar la zecimal folosind bucla „For”.

Transformarea din binar în zecimal a fost realizată folosind o buclă „while”. Cu toate acestea, putem folosi și metoda buclei „for” pentru a transforma biții binari în număr zecimal.



#include
#include <șir>

int principal ( ) {
std :: şir cos ;
std :: cout << „Introduceți numărul binar:” ;
std :: mâncând >> cos ;

int dec = 0 ;
int bazaIs = 1 ;

pentru ( int A = cos. lungime ( ) - 1 ; A >= 0 ; A -- ) {
dacă ( cos [ A ] == „1” ) {
dec + = bazaIs ;
}
bazaIs * = 2 ;
}

std :: cout << 'Rezultatele în zecimală: ' << dec << std :: endl ;

întoarcere 0 ;
}

Aici, începem cu programul cu funcția main() unde avem variabila „std::string” care este „bin” pentru a stoca numărul binar introdus de utilizator în prompt. Inițial, promptul va cere utilizatorului să introducă numărul binar folosind declarația „cout”. Apoi, comanda „cin” va citi acel număr binar. După aceea, inițializam variabila „dec” cu valoarea „0” și variabila „baseIs” cu valoarea „1” pentru a obține echivalentul zecimal.

Apoi, numim o buclă „for” care circulă peste fiecare număr al binarului specificat de la dreapta la stânga. În cadrul buclei, avem o condiție „dacă” pentru a verifica dacă numărul binar este 1. Dacă este 1, valoarea zecimală este adăugată variabilei „dec”. Variabila „baseIs” are puterea de 2 pentru a fi înmulțită cu 1 la fiecare iterație.

Valoarea numărului binar și conversia acestuia în valoare zecimală sunt afișate pe ecranul de solicitare:

Exemplul 3: Programul de șir binar la zecimal

Valoarea șirului binar este acum definită pentru a-și converti valoarea în valoare zecimală. Următoarea implementare este făcută pentru a transforma valoarea șirului binar în valoare zecimală:

#include
#include <șir>
folosind spatiu de nume std ;

int binToDec ( string val )
{
valoare șir = val ;
int valoare_zecimală = 0 ;

int valoare_bază = 1 ;

int numai = valoare. lungime ( ) ;
pentru ( int m = numai - 1 ; m >= 0 ; m -- ) {
dacă ( val [ m ] == „1” )
valoare_zecimală + = valoare_bază ;
valoare_bază = valoare_bază * 2 ;
}

întoarcere valoare_zecimală ;
}

int principal ( )
{
string val = „11100101” ;
cout << binToDec ( val ) << endl ;
}

Aici, începem cu crearea unei funcții BinToDec() pentru conversia cifrelor binare în valori zecimale. Funcția BinToDec() preia argumentul „val” de tip șir. În cadrul funcției BinToDec(), inițializam variabila „valoare” cu variabila „val” care reprezintă că valoarea variabilei „val” va fi stocată în variabila „valoare”. Apoi, declarăm o nouă variabilă, „decimal_value”, care este atribuită cu o valoare de 0.

În mod similar, variabila „base_value” este setată și inițializată cu valoarea 1. În continuare, definim variabila „len” unde este apelată funcția length() pentru a obține lungimea numărului binar. După inițializarea variabilei, avem iterația buclei „for”. Bucla „for” iterează fiecare cifră a numărului binar de la dreapta la stânga.

După aceea, avem o funcție main() în care numărul binar este specificat ca valoare șir pentru variabila „val”, care este convertită în valoare zecimală, așa cum numim funcția BinToDec(val) cu comanda „cout”.

Valoarea binară de tip șir este acum convertită în valoarea zecimală, așa cum este afișată în următoarele:

Exemplul 4: Programul de la binar la zecimal folosind clasa Bitset

În plus, putem converti numărul binar în număr zecimal prin definirea clasei „bitset” a C++ în program. Oferă funcțiile prin care procedura de conversie este foarte simplă.

#include
#include

int principal ( ) {
std :: şir binaryIs ;
std :: cout << 'Vă rugăm să furnizați un număr binar: ' ;
std :: mâncând >> binaryIs ;

std :: set de biți < 64 > binar ( binaryIs ) ;
nesemnat lung numar decimal = binar. prea lung ( ) ;

std :: cout << 'Numar decimal: ' << numar decimal << std :: endl ;

întoarcere 0 ;
}

Aici, setăm biblioteca „bitset” a C++ în antet, ceea ce este foarte util atunci când lucrați cu valori binare. După aceasta, avem o definiție a funcției main() în care folosim „std::string” pentru a declara variabila „binaryIs”. Variabila „binaryIs” stochează valoarea binarului în șir. Apoi, îi cerem utilizatorului să adauge numărul binar în promptul utilizatorului și acesta este citit prin comanda „cin”. După aceasta, ajustăm dimensiunea biților care pot fi de 64 de biți întregi. Apoi, funcția to_ulong() este apelată din clasa „bitset” în variabila „decimalNumber”. Funcția to_ulong() convertește setul de biți într-un tip de date lung nesemnat. În cele din urmă, folosim comanda „cout” pentru a tipări valoarea zecimală a valorii binare care este dată de utilizator.

Valoarea binară furnizată de utilizator este acum convertită în valoare zecimală:

Concluzie

În concluzie, am acoperit metodele de conversie a unei valori binare într-o valoare zecimală. Am folosit bucla „for”, bucla „while” și abordările clasei de set de biți pentru conversia binară în zecimală. Aceste abordări transformă numerele binare în sisteme zecimale, ceea ce facilitează citirea și înțelegerea.