Muunnos binääristä desimaaliksi C++:ssa

Muunnos Binaarista Desimaaliksi C Ssa



Artikkelissa näemme binääriarvojen muuntamisen desimaaliarvoiksi C++-ohjelmassa. Binäärilukua edustavat numerot 0 ja 1, kun taas desimaaliarvot sisältävät numerot, jotka vaihtelevat välillä 0–9. Binääri-desimaalimuunnoksen suorittamiseksi binääriarvo tulee kertoa 2:lla korotettuna potenssiin ' n' alkaen oikealta ja siirtymällä vasemmalle suuremmalla 'n':llä. Toteutetaan tämä koodiin binaarin muuntamiseksi desimaaliarvoksi.

Esimerkki 1: Ohjelma binääristä desimaaliin käyttämällä 'While' -silmukkaa

Meillä on seuraava ohjelma luvun muuntamiseksi binääristä desimaaliksi. Ohjelmassa käytämme 'while'-silmukkaa binäärimuunnokseen desimaalilukuiksi.

#include
#include

käyttämällä nimiavaruus std ;

int convertOfBin ( pitkä pitkä ) ;

int pää ( ) {
pitkä pitkä yhdellä ;
cout << 'Binäärinumero vaaditaan: ' ;
syöminen >> yhdellä ;
cout << yhdellä << 'binäärimuodossa =' << convertOfBin ( yhdellä ) << 'desimaalilukuna' ;
palata 0 ;
}

int convertOfBin ( pitkä pitkä yhdellä ) {
int niin = 0 , x = 0 , loput ;

sillä aikaa ( yhdellä ! = 0 ) {
loput = yhdellä % 10 ;
yhdellä / = 10 ;
joulukuu + = loput * pow ( 2 , x ) ;
++ x ;
}

palata niin ;
}

Tässä määritämme 'iostream'-otsikkotiedoston tulo- ja lähtövirroille ja 'cmath' käyttääksemme ohjelman matemaattista funktiota. Tämän jälkeen määritämme ConversionOfBin()-funktion, jossa parametri tyyppi “long long” välitetään. Seuraavaksi meillä on main()-funktiokutsu ohjelman suorittamiseksi. Main()-funktion sisällä julistetaan pitkä intertyyppinen muuttuja nimeltä 'num'.







Tämän jälkeen ConversionOfBin()-funktio muuntaa syötetyn binaariluvun desimaaliluvuksi. Tätä varten meillä on ConversionOfBin()-funktion määritelmä ohjainkoodin jälkeen. ConversionOfBin()-funktio välitetään 'num'-muuttujan kanssa, jolla on binääriluku. Sitten kutsumme 'while'-silmukkaa muuntaaksemme binääriluvun 'num':ksi desimaaliarvoksi. Ennen tätä alustamme muuttujat 'deci', 'x' ja 'remainder' arvolla '0'.



'While'-silmukan sisällä jakotoiminto suoritetaan edustamaan binääriluvun oikeanpuoleista arvoa. Jakotulokset tallennetaan 'remainder'-muuttujaan. Sitten lisäämme jäännöstulokset ja tehotulokset 'deci'-muuttujaan. 'x'-muuttuja arvioi jatkuvasti 2:n pätötehoa.



Tulokset määritettyjen binäärilukujen muuntamisesta desimaaliarvoiksi saavutetaan C++-konsolissa:





Esimerkki 2: Ohjelma binääristä desimaaliin käyttämällä 'For'-silmukkaa

Muunnos binääristä desimaalimuotoon suoritettiin käyttämällä 'while'-silmukkaa. Voimme kuitenkin myös käyttää 'for' -silmukkamenetelmää binääribittien muuntamiseksi desimaaliluvuiksi.



#include
#sisällytä

int pää ( ) {
std :: merkkijono roskakori ;
std :: cout << 'Syötä binaariluku: ' ;
std :: syöminen >> roskakori ;

int joulukuu = 0 ;
int baseIs = 1 ;

varten ( int a = roskakori. pituus ( ) - 1 ; a >= 0 ; a -- ) {
jos ( roskakori [ a ] == '1' ) {
joulukuu + = baseIs ;
}
baseIs * = 2 ;
}

std :: cout << 'Tulokset desimaaleina: ' << joulukuu << std :: endl ;

palata 0 ;
}

Tässä aloitamme main()-funktioohjelmalla, jossa meillä on 'std::string'-muuttuja, joka on 'bin', joka tallentaa käyttäjän kehotteeseen syöttämän binääriluvun. Aluksi kehote pyytää käyttäjää syöttämään binääriluvun 'cout'-käskyn avulla. Sitten 'cin' -komento lukee kyseisen binääriluvun. Tämän jälkeen alustamme 'dec'-muuttujan arvolla '0' ja 'baseIs'-muuttujan arvolla '1', jotta saadaan desimaalivastaava.

Sitten kutsumme 'for'-silmukkaa, joka kiertää määritetyn binaarin jokaisen numeron yli oikealta vasemmalle. Silmukan sisällä meillä on 'if'-ehto, jolla tarkistetaan, onko binääriluku 1. Jos se on 1, desimaaliarvo lisätään 'dec'-muuttujaan. 'BaseIs'-muuttujan teho on 2, joka kerrotaan 1:llä jokaisessa iteraatiossa.

Binääriluvun arvo ja sen muuntaminen desimaaliarvoksi näytetään kehotenäytössä:

Esimerkki 3: Binäärimerkkijonon ohjelma desimaalilukuihin

Binäärimerkkijonon arvo on nyt määritetty muuttamaan sen arvo desimaaliarvoksi. Seuraava toteutus tehdään binäärimerkkijonon arvon muuttamiseksi desimaaliarvoksi:

#include
#sisällytä
käyttämällä nimiavaruus std ;

int binToDec ( merkkijono val )
{
merkkijonon arvo = val ;
int desimaali_arvo = 0 ;

int perusarvo = 1 ;

int vain = arvo. pituus ( ) ;
varten ( int m = vain - 1 ; m >= 0 ; m -- ) {
jos ( val [ m ] == '1' )
desimaali_arvo + = perusarvo ;
perusarvo = perusarvo * 2 ;
}

palata desimaali_arvo ;
}

int pää ( )
{
merkkijono val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Tässä aloitamme luomalla BinToDec()-funktion binäärinumeroiden muuntamiseksi desimaaliarvoiksi. BinToDec()-funktio ottaa merkkijonotyypin 'val'-argumentin. BinToDec()-funktiossa alustamme 'value'-muuttujan 'val'-muuttujalla, mikä tarkoittaa, että 'val'-muuttujan arvo tallennetaan 'value'-muuttujaan. Sitten julistamme uuden muuttujan, 'decimal_value', jolle annetaan arvo 0.

Samoin 'base_value'-muuttuja asetetaan ja alustetaan arvolla 1. Seuraavaksi määritetään 'len'-muuttuja, jossa pituus()-funktiota kutsutaan binääriluvun pituuden saamiseksi. Muuttujan alustuksen jälkeen meillä on 'for' -silmukan iteraatio. For-silmukka toistaa jokaisen binääriluvun numeron oikealta vasemmalle.

Sen jälkeen meillä on main()-funktio, jossa binääriluku määritetään merkkijonoarvona 'val'-muuttujalle, joka muunnetaan desimaaliarvoksi, kuten kutsumme BinToDec(val)-funktiota 'cout'-komennolla.

Merkkijonotyyppinen binaariarvo muunnetaan nyt desimaaliarvoksi seuraavassa esitetyllä tavalla:

Esimerkki 4: Ohjelma binääristä desimaaliin käyttämällä bittiluokkaa

Lisäksi voimme muuntaa binääriluvun desimaaliluvuksi määrittelemällä ohjelmassa C++:n 'bitset'-luokan. Se tarjoaa toiminnot, joiden avulla muunnosprosessi on hyvin yksinkertainen.

#include
#include

int pää ( ) {
std :: merkkijono binaryIs ;
std :: cout << 'Anna binäärinumero:' ;
std :: syöminen >> binaryIs ;

std :: bittisarja < 64 > binääri ( binaryIs ) ;
allekirjoittamaton pitkä desimaaliluku = binääri. liian pitkä ( ) ;

std :: cout << 'Desimaaliluku:' << desimaaliluku << std :: endl ;

palata 0 ;
}

Täällä asetamme otsikkoon C++:n 'bitset'-kirjaston, joka on erittäin hyödyllinen binääriarvojen kanssa työskennellessä. Tämän jälkeen meillä on main()-funktion määritelmä, jossa käytämme 'std::string' ilmoittamaan 'binaryIs'-muuttuja. 'BinaryIs'-muuttuja tallentaa binääriarvon merkkijonoon. Seuraavaksi pyydämme käyttäjää lisäämään binäärinumeron käyttäjän kehotteeseen ja se luetaan 'cin' -komennon kautta. Tämän jälkeen säädämme bittien kokoa, joka voi olla 64 bittiä kokonaislukua. Sitten funktio to_ulong() kutsutaan 'bitset'-luokasta 'decimalNumber'-muuttujaan. To_ulong()-funktio muuntaa bittijoukon etumerkittömäksi pitkäksi tietotyypiksi. Lopuksi käytämme 'cout'-komentoa tulostamaan käyttäjän antaman binääriarvon desimaaliarvon.

Käyttäjän antama binääriarvo muunnetaan nyt desimaaliarvoksi:

Johtopäätös

Lopuksi käsittelimme menetelmiä, joilla binääriarvo muunnetaan desimaaliarvoksi. Käytimme 'for' -silmukkaa, 'while' -silmukkaa ja bitset-luokkalähestymistapoja binäärimuunnokseen desimaaliksi. Nämä lähestymistavat muuttavat binääriluvut desimaalijärjestelmiksi, mikä helpottaa lukemista ja ymmärtämistä.