Dvejetainis konvertavimas į dešimtainį C++

Dvejetainis Konvertavimas I Desimtaini C



Straipsnyje pamatysime dvejetainių reikšmių konvertavimą į dešimtaines reikšmes C++ programoje. Dvejetainis skaičius pavaizduotas 0 ir 1 skaitmenimis, o dešimtaines reikšmes sudaro skaitmenys, kurie svyruoja nuo 0 iki 9. Norint atlikti dvejetainį į dešimtainį konvertavimą, dvejetainė vertė turi būti padauginta iš 2, padidinta iki ' n“ pradedant iš dešinės ir judant į kairę su didesniu „n“. Įdiegkime tai kode, kad dvejetainę vertę pakeistume į dešimtainę reikšmę.

1 pavyzdys: Programa nuo dvejetainių iki dešimtainių, naudojant kilpą „While“.

Mes turime šią programą, skirtą skaičiui konvertuoti iš dvejetainio į dešimtainį. Programoje naudojame „while“ kilpą dvejetainiam konvertavimui į dešimtainę.

#include
#include

naudojant vardų erdvė std ;

tarpt conversionOfBin ( ilgai ilgai ) ;

tarpt pagrindinis ( ) {
ilgai ilgai ant vieno ;
cout << 'Reikalingas dvejetainis skaičius: ' ;
valgymas >> ant vieno ;
cout << ant vieno << ' dvejetainiu = ' << conversionOfBin ( ant vieno ) << 'dešimtainiu' ;
grąžinti 0 ;
}

tarpt conversionOfBin ( ilgai ilgai ant vieno ) {
tarpt taip = 0 , x = 0 , priminimas ;

kol ( ant vieno ! = 0 ) {
priminimas = ant vieno % 10 ;
ant vieno / = 10 ;
gruod + = priminimas * pow ( 2 , x ) ;
++ x ;
}

grąžinti taip ;
}

Čia apibrėžiame „iostream“ antraštės failą įvesties ir išvesties srautams ir „cmath“, kad panaudotume matematinę funkciją programoje. Po to apibrėžiame funkciją ConversionOfBin(), kur perduodamas tipo „long long“ parametras. Toliau programai vykdyti turime funkcijos main() iškvietimą. Funkcijos main () viduje deklaruojame ilgą inter tipo kintamąjį, vadinamą „num“.







Po to funkcija ConversionOfBin() konvertuoja įvestą dvejetainį skaičių į dešimtainį skaičių. Tam mes turime funkcijos ConversionOfBin() apibrėžimą po tvarkyklės kodu. Funkcija ConversionOfBin() perduodama su „num“ kintamuoju, kuris turi dvejetainį skaičių. Tada iškviečiame kilpą „while“, kad dvejetainį skaičių „skaičiumi“ pakeistume į dešimtainę reikšmę. Prieš tai inicijuojame kintamuosius „deci“, „x“ ir „likęs“ reikšme „0“.



„While“ cikle atliekama padalijimo operacija, kad būtų parodyta dešiniausia dvejetainio skaičiaus reikšmė. Padalijimo rezultatai saugomi kintamajame „likęs“. Tada į kintamąjį „deci“ pridedame likusios dalies rezultatus ir galios rezultatus. Kintamasis „x“ nuolat vertina 2 aktyviąją galią.



Nurodytų dvejetainių skaičių konvertavimo į dešimtaines reikšmes rezultatai pasiekiami C++ konsolėje:





2 pavyzdys: Programa nuo dvejetainių iki dešimtainių naudojant „For“ kilpą

Transformacija iš dvejetainės į dešimtainę buvo atlikta naudojant „while“ kilpą. Tačiau mes taip pat galime naudoti „for“ ciklo metodą, kad dvejetainius bitus paverstume dešimtainiais skaičiais.



#include
#include

tarpt pagrindinis ( ) {
std :: styga šiukšliadėžė ;
std :: cout << „Įveskite dvejetainį skaičių:“ ;
std :: valgymas >> šiukšliadėžė ;

tarpt gruod = 0 ;
tarpt bazėIs = 1 ;

dėl ( tarpt a = šiukšliadėžė. ilgio ( ) - 1 ; a >= 0 ; a -- ) {
jeigu ( šiukšliadėžė [ a ] == '1' ) {
gruod + = bazėIs ;
}
bazėIs * = 2 ;
}

std :: cout << „Rezultatai dešimtainiais:“ << gruod << std :: endl ;

grąžinti 0 ;
}

Čia pradedame nuo pagrindinės () funkcijos programos, kurioje turime kintamąjį „std::string“, kuris yra „bin“, kad būtų išsaugotas vartotojo įvestas dvejetainis skaičius. Iš pradžių raginimas paprašys vartotojo įvesti dvejetainį skaičių naudojant „cout“ teiginį. Tada komanda „cin“ nuskaitys tą dvejetainį skaičių. Po to inicijuojame kintamąjį „dec“ reikšme „0“ ir kintamąjį „baseIs“ reikšme „1“, kad gautume dešimtainį ekvivalentą.

Tada mes vadiname 'for' kilpą, kuri sukasi per kiekvieną nurodyto dvejetainio skaičių iš dešinės į kairę. Ciklo viduje turime sąlygą „if“, kad patikrintume, ar dvejetainis skaičius yra 1. Jei jis yra 1, dešimtainė reikšmė pridedama prie kintamojo „dec“. Kintamasis „baseIs“ turi 2 laipsnį, kuris kiekvienoje iteracijoje turi būti padaugintas iš 1.

Dvejetainio skaičiaus reikšmė ir jos konvertavimas į dešimtainę reikšmę rodomas raginimo ekrane:

3 pavyzdys: Dvejetainės eilutės į dešimtainę programa

Dabar apibrėžta dvejetainės eilutės reikšmė, kad jos vertė būtų konvertuojama į dešimtainę reikšmę. Norint paversti dvejetainę eilutės reikšmę į dešimtainę reikšmę, atliekamas toks diegimas:

#include
#include
naudojant vardų erdvė std ;

tarpt binToDec ( stygos val )
{
eilutės reikšmė = val ;
tarpt dešimtainė_reikšmė = 0 ;

tarpt bazinė_vertė = 1 ;

tarpt tik = vertė. ilgio ( ) ;
dėl ( tarpt m = tik - 1 ; m >= 0 ; m -- ) {
jeigu ( val [ m ] == '1' )
dešimtainė_reikšmė + = bazinė_vertė ;
bazinė_vertė = bazinė_vertė * 2 ;
}

grąžinti dešimtainė_reikšmė ;
}

tarpt pagrindinis ( )
{
stygos val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Čia pradedame sukūrę funkciją BinToDec (), skirtą dvejetainiams skaitmenims konvertuoti į dešimtaines reikšmes. Funkcija BinToDec() paima eilutės tipo argumentą „val“. Funkcijoje BinToDec() inicijuojame kintamąjį 'value' kintamuoju 'val', kuris reiškia, kad 'val' kintamojo reikšmė bus saugoma 'value' kintamajame. Tada deklaruojame naują kintamąjį „decimal_value“, kuriam priskiriama 0 reikšmė.

Panašiai kintamasis „base_value“ nustatomas ir inicijuojamas reikšme 1. Toliau apibrėžiame „len“ kintamąjį, kur funkcija long() iškviečiama dvejetainio skaičiaus ilgiui gauti. Po kintamojo inicijavimo turime „for“ ciklo iteraciją. „For“ kilpa kartoja kiekvieną dvejetainio skaičiaus skaitmenį iš dešinės į kairę.

Po to turime funkciją main (), kur dvejetainis skaičius nurodomas kaip eilutės reikšmė „val“ kintamajam, kuris konvertuojamas į dešimtainę reikšmę, kaip mes vadiname BinToDec (val) funkciją su komanda „cout“.

Eilutės tipo dvejetainė reikšmė dabar konvertuojama į dešimtainę reikšmę, kaip parodyta toliau:

4 pavyzdys: Programa nuo dvejetainių iki dešimtainių naudojant bitų klasę

Be to, mes galime konvertuoti dvejetainį skaičių į dešimtainį skaičių, programoje apibrėždami C++ „bitset“ klasę. Jame pateikiamos funkcijos, per kurias konvertavimo procedūra yra labai paprasta.

#include
#include

tarpt pagrindinis ( ) {
std :: styga dvejetainisIs ;
std :: cout << „Prašome pateikti dvejetainį numerį:“ ;
std :: valgymas >> dvejetainisIs ;

std :: bitų rinkinys < 64 > dvejetainis ( dvejetainisIs ) ;
nepasirašytas ilgai dešimtainisSkaičius = dvejetainis. per ilgai ( ) ;

std :: cout << „Dešimtainis skaičius:“ << dešimtainisSkaičius << std :: endl ;

grąžinti 0 ;
}

Čia antraštėje nustatome C++ „bitų rinkinio“ biblioteką, kuri yra labai naudinga dirbant su dvejetainėmis reikšmėmis. Po to mes turime main () funkcijos apibrėžimą, kuriame naudojame „std::string“, kad deklaruotume „binaryIs“ kintamąjį. Kintamasis „binaryIs“ išsaugo dvejetainio vertę eilutėje. Tada mes prašome vartotojo pridėti dvejetainį skaičių į vartotojo eilutę ir jis nuskaitomas naudojant komandą „cin“. Po to pakoreguojame bitų dydį, kuris gali būti 64 bitų sveikasis skaičius. Tada funkcija to_ulong () iškviečiama iš 'bitset' klasės į 'decimalNumber' kintamąjį. Funkcija to_ulong() konvertuoja bitų rinkinį į nepaženklintą ilgų duomenų tipą. Galiausiai, mes naudojame komandą „cout“, kad išspausdintume vartotojo pateiktos dvejetainės reikšmės dešimtainę reikšmę.

Naudotojo pateikta dvejetainė reikšmė dabar konvertuojama į dešimtainę reikšmę:

Išvada

Pabaigoje apžvelgėme dvejetainės reikšmės konvertavimo į dešimtainę reikšmę būdus. Dvejetainiam konvertavimui į dešimtainę naudojome kilpą „for“, „while“ ir bitų rinkinio klasės metodus. Šie metodai paverčia dvejetainius skaičius į dešimtaines sistemas, kurios palengvina skaitymą ir supratimą.