Binārā konvertēšana uz decimālo C++

Binara Konvertesana Uz Decimalo C



Rakstā mēs redzēsim bināro vērtību pārvēršanu decimāldaļās C++ programmā. Binārais skaitlis tiek attēlots ar cipariem 0 un 1, savukārt decimālvērtībās ir ietverti cipari no 0 līdz 9. Lai veiktu bināro uz decimālo pārveidošanu, binārā vērtība jāreizina ar 2, palielinot to pakāpē “ n”, sākot no labās puses un virzoties pa kreisi ar lielāku “n”. Ieviesīsim to kodā, lai pārveidotu bināro vērtību decimāldaļā.

1. piemērs. Programma no binārā līdz decimāldaļai, izmantojot cilpu “While”.

Mums ir šāda programma, lai pārvērstu skaitli no bināra uz decimālu. Programmā mēs izmantojam cilpu “while” binārajai konvertēšanai uz decimāldaļu.

#include
#include

izmantojot nosaukumvieta std ;

starpt conversionOfBin ( garš garš ) ;

starpt galvenais ( ) {
garš garš uz viena ;
cout << 'Nepieciešams binārais skaitlis:' ;
ēšana >> uz viena ;
cout << uz viena << ' binārā = ' << conversionOfBin ( uz viena ) << ' decimāldaļās' ;
atgriezties 0 ;
}

starpt conversionOfBin ( garš garš uz viena ) {
starpt tātad = 0 , x = 0 , atlikums ;

kamēr ( uz viena ! = 0 ) {
atlikumu = uz viena % 10 ;
uz viena / = 10 ;
dec + = atlikumu * pow ( 2 , x ) ;
++ x ;
}

atgriezties tātad ;
}

Šeit mēs definējam “iostream” galvenes failu ievades un izvades straumēm un “cmath”, lai programmā izmantotu matemātisko funkciju. Pēc tam mēs definējam funkciju ConversionOfBin (), kurā tiek nodots parametrs “long long” tipam. Tālāk mums ir main() funkcijas izsaukums, lai izpildītu programmu. Funkcijā main () mēs deklarējam garu inter tipa mainīgo, ko sauc par “num”.







Pēc tam funkcija ConversionOfBin() pārveido ievadīto bināro skaitli decimālskaitlī. Šim nolūkam mums ir funkcijas ConversionOfBin() definīcija aiz draivera koda. Funkcija ConversionOfBin() tiek nodota ar mainīgo “num”, kam ir binārais skaitlis. Pēc tam mēs izsaucam cilpu “while”, lai pārveidotu bināro skaitli “num” uz decimāldaļu. Pirms tam mēs inicializējam mainīgos “deci”, “x” un “remainder” ar vērtību “0”.



Cilpas “while” ietvaros dalīšanas darbība tiek veikta, lai attēlotu binārā skaitļa galējo labo vērtību. Sadalīšanas rezultāti tiek saglabāti mainīgajā “atlikums”. Pēc tam mēs pievienojam atlikuma rezultātus un jaudas rezultātus mainīgajam “deci”. Mainīgais “x” turpina novērtēt 2 aktīvo jaudu.



Rezultāti, pārvēršot norādītos bināros skaitļus decimālvērtībās, tiek sasniegti C++ konsolē:





2. piemērs. Programma no binārā līdz decimālajam, izmantojot cilpu “For”.

Pārveidošana no bināra uz decimālu tika veikta, izmantojot cilpu “while”. Tomēr mēs varam arī izmantot “for” cilpas metodi, lai pārveidotu bināros bitus decimālskaitlī.



#include
#include

starpt galvenais ( ) {
std :: virkne atkritumu tvertne ;
std :: cout << 'Ievadiet bināro numuru:' ;
std :: ēšana >> atkritumu tvertne ;

starpt dec = 0 ;
starpt bāzeIs = 1 ;

priekš ( starpt a = atkritumu tvertne. garums ( ) - 1 ; a >= 0 ; a -- ) {
ja ( atkritumu tvertne [ a ] == '1' ) {
dec + = bāzeIs ;
}
bāzeIs * = 2 ;
}

std :: cout << 'Rezultāti decimāldaļās:' << dec << std :: endl ;

atgriezties 0 ;
}

Šeit mēs sākam ar galveno () funkciju programmu, kurā mums ir mainīgais “std::string”, kas ir “bin”, lai saglabātu lietotāja uzvednē ievadīto bināro numuru. Sākotnēji uzvedne lūgs lietotājam ievadīt bināro skaitli, izmantojot paziņojumu “cout”. Pēc tam komanda “cin” nolasīs šo bināro skaitli. Pēc tam mēs inicializējam mainīgo “dec” ar vērtību “0” un mainīgo “baseIs” ar vērtību “1”, lai iegūtu decimāldaļu ekvivalentu.

Pēc tam mēs izsaucam “for” cilpu, kas cilpas pār katru norādītā bināra numuru no labās uz kreiso pusi. Cilpas ietvaros mums ir nosacījums “if”, lai pārbaudītu, vai binārais skaitlis ir 1. Ja tas ir 1, mainīgajam “dec” tiek pievienota decimālvērtība. Mainīgajam “baseIs” ir jauda 2, kas jāreizina ar 1 katrā iterācijā.

Uzvednes ekrānā tiek parādīta binārā skaitļa vērtība un tās pārvēršana decimāldaļā:

3. piemērs: Binārās virknes programma decimālskaitļiem

Binārās virknes vērtība tagad ir definēta, lai pārvērstu tās vērtību decimāldaļā. Lai binārās virknes vērtību pārveidotu par decimālo vērtību, tiek veikta šāda ieviešana:

#include
#include
izmantojot nosaukumvieta std ;

starpt binToDec ( string val )
{
virknes vērtība = val ;
starpt decimālvērtība = 0 ;

starpt bāzes_vērtība = 1 ;

starpt tikai = vērtību. garums ( ) ;
priekš ( starpt m = tikai - 1 ; m >= 0 ; m -- ) {
ja ( val [ m ] == '1' )
decimālvērtība + = bāzes_vērtība ;
bāzes_vērtība = bāzes_vērtība * 2 ;
}

atgriezties decimālvērtība ;
}

starpt galvenais ( )
{
string val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Šeit mēs sākam ar funkcijas BinToDec() izveidi bināro ciparu pārvēršanai decimālvērtībās. Funkcija BinToDec() izmanto virknes tipa argumentu “val”. Funkcijā BinToDec () mēs inicializējam mainīgo “value” ar mainīgo “val”, kas nozīmē, ka “val” mainīgā vērtība tiks saglabāta mainīgajā “value”. Pēc tam mēs deklarējam jaunu mainīgo “decimal_value”, kam tiek piešķirta vērtība 0.

Līdzīgi tiek iestatīts un inicializēts mainīgais “base_value” ar vērtību 1. Tālāk mēs definējam mainīgo “len”, kurā tiek izsaukta funkcija long(), lai iegūtu binārā skaitļa garumu. Pēc mainīgā inicializācijas mums ir “for” cilpas iterācija. Cilpa “for” atkārto katru binārā skaitļa ciparu no labās uz kreiso pusi.

Pēc tam mums ir funkcija main (), kurā binārais skaitlis ir norādīts kā virknes vērtība mainīgajam “val”, kas tiek pārveidots par decimālo vērtību, kā mēs saucam BinToDec (val) funkciju ar komandu “cout”.

Virknes tipa binārā vērtība tagad tiek pārveidota par decimālo vērtību, kā parādīts tālāk norādītajā attēlā.

4. piemērs: Bināro uz decimālo vērtību programma, izmantojot bitu klasi

Turklāt mēs varam pārvērst bināro skaitli par decimālo skaitli, programmā definējot C++ “bitset” klasi. Tas nodrošina funkcijas, ar kurām konvertēšanas procedūra ir ļoti vienkārša.

#include
#include

starpt galvenais ( ) {
std :: virkne binārsIs ;
std :: cout << 'Lūdzu, norādiet bināro numuru:' ;
std :: ēšana >> binārsIs ;

std :: bitkopa < 64 > binārs ( binārsIs ) ;
neparakstīts garš decimālskaitlis = binārs. pārāk ilgi ( ) ;

std :: cout << 'Decimālskaitlis:' << decimālskaitlis << std :: endl ;

atgriezties 0 ;
}

Šeit mēs galvenē iestatām C++ “bitset” bibliotēku, kas ir ļoti noderīga, strādājot ar binārajām vērtībām. Pēc tam mums ir galvenā () funkcijas definīcija, kurā mēs izmantojam “std::string”, lai deklarētu mainīgo “binaryIs”. Mainīgais “binaryIs” saglabā binārā vērtību virknē. Tālāk mēs lūdzam lietotāju pievienot bināro numuru lietotāja uzvednē, un tas tiek nolasīts, izmantojot komandu “cin”. Pēc tam mēs pielāgojam bitu lielumu, kas var būt 64 biti vesels skaitlis. Pēc tam funkcija to_ulong () tiek izsaukta no “bitset” klases mainīgajā “decimalNumber”. Funkcija to_ulong() pārvērš bitu kopu par neparakstītu garu datu tipu. Visbeidzot, mēs izmantojam komandu “cout”, lai izdrukātu lietotāja norādītās binārās vērtības decimālo vērtību.

Lietotāja sniegtā binārā vērtība tagad tiek pārvērsta decimāldaļā:

Secinājums

Noslēgumā mēs apskatījām metodes bināras vērtības pārvēršanai decimālajā vērtībā. Mēs izmantojām cilpu “for”, cilpu “while” un bitkopas klases pieejas binārajai pārvēršanai decimāldaļās. Šīs pieejas pārveido bināros skaitļus decimālajās sistēmās, kas atvieglo lasīšanu un izpratni.