Binaarne teisendamine kümnendsüsteemiks C++ keeles

Binaarne Teisendamine Kumnendsusteemiks C Keeles



Artiklis näeme binaarväärtuste teisendamist kümnendväärtusteks C++ programmis. Kahendarvu tähistavad numbrid 0 ja 1, samas kui kümnendväärtused sisaldavad numbreid vahemikus 0 kuni 9. Kahendarvust kümnendsüsteemi teisendamiseks tuleks binaarväärtus korrutada 2-ga, tõstes selle astmeni ' n” alustades paremalt ja liikudes vasakule kõrgema „n”-ga. Rakendame seda koodis, et teisendada binaarväärtus kümnendväärtuseks.

Näide 1: Programm kahendarvust kümnendarvuni, kasutades tsüklit 'While'.

Meil on järgmine programm arvu teisendamiseks kahendarvust kümnendkohani. Programmis kasutame tsüklit 'while' binaarseks teisendamiseks kümnendkohaks.

#include
#include

kasutades nimeruum std ;

int convertOfBin ( pikk pikk ) ;

int peamine ( ) {
pikk pikk ühel ;
cout << 'Nõutav kahendnumber:' ;
söömine >> ühel ;
cout << ühel << ' binaarses = ' << convertOfBin ( ühel ) << 'kümnendkohas' ;
tagasi 0 ;
}

int convertOfBin ( pikk pikk ühel ) {
int nii = 0 , x = 0 , ülejäänud ;

samal ajal ( ühel ! = 0 ) {
ülejäänud osa = ühel % 10 ;
ühel / = 10 ;
dets + = ülejäänud osa * pow ( 2 , x ) ;
++ x ;
}

tagasi nii ;
}

Siin määratleme sisend- ja väljundvoo päisefaili 'iostream' ning programmi matemaatilist funktsiooni kasutamiseks 'cmath'. Pärast seda määratleme funktsiooni ConversionOfBin(), kus edastatakse parameeter tüüp 'long long'. Järgmiseks on meil programmi käivitamiseks funktsioonikutse main(). Funktsiooni main() sees deklareerime pika inter tüüpi muutuja nimega 'num'.







Pärast seda teisendab funktsioon ConversionOfBin() sisestatud kahendarvu kümnendarvuks. Selleks on meil pärast draiverikoodi funktsiooni ConversionOfBin() definitsioon. Funktsioon ConversionOfBin() edastatakse muutujaga „num”, millel on kahendnumber. Seejärel kutsume tsüklit 'while', et teisendada kahendarvu 'num' kümnendväärtuseks. Enne seda initsialiseerime muutujad 'deci', 'x' ja 'remainder' väärtusega '0'.



Silmuses 'while' tehakse jagamisoperatsioon kahendarvu parempoolseima väärtuse esitamiseks. Jagamise tulemused salvestatakse muutujasse 'ülejääk'. Seejärel lisame jäägi ja võimsustulemuste tulemused muutujasse 'deci'. Muutuja “x” hindab pidevalt 2 aktiivvõimsust.



Määratud kahendarvude kümnendväärtusteks teisendamise tulemused saavutatakse C++ konsoolis:





Näide 2: Programm kahendarvust kümnendarvuni, kasutades tsüklit 'For'.

Teisendamine kahendarvust kümnendarvuks viidi läbi tsükliga 'while'. Siiski saame kasutada ka 'for' tsükli meetodit, et teisendada binaarsed bitid kümnendarvuks.



#include
#include

int peamine ( ) {
std :: string prügikast ;
std :: cout << 'Sisestage kahendnumber: ' ;
std :: söömine >> prügikast ;

int dets = 0 ;
int alus on = 1 ;

jaoks ( int a = prügikast. pikkus ( ) - 1 ; a >= 0 ; a -- ) {
kui ( prügikast [ a ] == '1' ) {
dets + = alus on ;
}
alus on * = 2 ;
}

std :: cout << 'Tulemused kümnendkohas:' << dets << std :: endl ;

tagasi 0 ;
}

Siin alustame funktsiooniprogrammiga main(), kus meil on muutuja 'std::string', mis on 'bin', et salvestada kasutaja sisestatud kahendarvud. Esialgu palub viip kasutajal sisestada kahendarvu, kasutades lauset 'cout'. Seejärel loeb käsk 'cin' selle kahendarvu. Pärast seda initsialiseerime muutuja 'dec' väärtusega '0' ja muutuja 'baseIs' väärtusega '1', et saada kümnendkoha ekvivalent.

Seejärel kutsume esile tsükli, mis liigub üle määratud kahendkoodi iga numbri paremalt vasakule. Tingis on meil tingimus 'if', et kontrollida, kas kahendarvuks on 1. Kui see on 1, lisatakse muutujale 'dec' kümnendväärtus. Muutuja “baseIs” võimsus on 2, mis tuleb igal iteratsioonil korrutada 1-ga.

Viipakuval kuvatakse kahendarvu väärtus ja selle teisendamine kümnendarvuks:

Näide 3: Binaarse stringi programm kümnendkohani

Nüüd on binaarne stringi väärtus määratletud, et teisendada selle väärtus kümnendväärtuseks. Binaarse stringi väärtuse kümnendväärtuseks teisendamiseks tehakse järgmine teostus:

#include
#include
kasutades nimeruum std ;

int binToDec ( string val )
{
stringi väärtus = val ;
int kümnend_väärtus = 0 ;

int baasväärtus = 1 ;

int ainult = väärtus. pikkus ( ) ;
jaoks ( int m = ainult - 1 ; m >= 0 ; m -- ) {
kui ( val [ m ] == '1' )
kümnend_väärtus + = baasväärtus ;
baasväärtus = baasväärtus * 2 ;
}

tagasi kümnend_väärtus ;
}

int peamine ( )
{
string val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Siin alustame funktsiooni BinToDec() loomisega, et teisendada kahendnumbrid kümnendväärtusteks. Funktsioon BinToDec() võtab stringitüübi argumendi 'val'. Funktsioonis BinToDec() initsialiseerime muutuja 'value' muutujaga 'val', mis tähendab, et muutuja 'val' väärtus salvestatakse muutujasse 'value'. Seejärel deklareerime uue muutuja 'decimal_value', millele määratakse väärtus 0.

Samamoodi määratakse muutuja “base_value” ja lähtestatakse väärtusega 1. Järgmisena defineerime muutuja “len”, kus kahendarvu pikkuse saamiseks kutsutakse funktsioon long(). Pärast muutuja lähtestamist on meil 'for' tsükli iteratsioon. Silmus 'for' kordab iga kahendarvu numbrit paremalt vasakule.

Pärast seda on meil funktsioon main(), kus binaararv määratakse stringi väärtusena muutujale 'val', mis teisendatakse kümnendväärtuseks, nagu me kutsume funktsiooni BinToDec(val) käsuga 'cout'.

Stringi tüüpi binaarväärtus teisendatakse nüüd kümnendväärtuseks, nagu on näidatud järgmises:

Näide 4: Programm binaarsest kümnendarvuni, kasutades bittiklassi

Lisaks saame binaararvu teisendada kümnendarvuks, määratledes programmis C++ klassi “bitset”. See pakub funktsioone, mille kaudu on teisendusprotseduur väga lihtne.

#include
#include

int peamine ( ) {
std :: string binaarneIs ;
std :: cout << 'Palun sisestage kahendnumber:' ;
std :: söömine >> binaarneIs ;

std :: bitikomplekt < 64 > binaarne ( binaarneIs ) ;
allkirjastamata pikk kümnendnumber = binaarne. liiga kaua ( ) ;

std :: cout << 'Kummanumber:' << kümnendnumber << std :: endl ;

tagasi 0 ;
}

Siin määrame päises C++ 'bitiseti' teegi, mis on binaarväärtustega töötamisel väga kasulik. Pärast seda on meil funktsiooni main() definitsioon, kus kasutame muutuja 'binaryIs' deklareerimiseks 'std::string'. Muutuja 'binaryIs' salvestab binaarse väärtuse stringis. Järgmisena palume kasutajal lisada binaarnumber kasutajapoolsesse viipa ja see loetakse läbi käsuga 'cin'. Pärast seda reguleerime bittide suurust, mis võib olla 64-bitine täisarv. Seejärel kutsutakse funktsioon to_ulong() klassist 'bitset' muutujasse 'decimalNumber'. Funktsioon to_ulong() teisendab bittide komplekti märgita pikaks andmetüübiks. Lõpuks kasutame käsku “cout”, et printida kasutaja antud kahendväärtuse kümnendväärtus.

Kasutaja esitatud binaarväärtus teisendatakse nüüd kümnendväärtuseks:

Järeldus

Kokkuvõtteks käsitlesime binaarväärtuse kümnendväärtuseks teisendamise meetodeid. Kümnendarvuks teisendamiseks kasutasime tsüklit 'for', tsüklit 'while' ja bitset klassi lähenemisviise. Need lähenemisviisid muudavad kahendarvud kümnendsüsteemiks, mis hõlbustab lugemist ja arusaamist.