Binárisból decimálissá konvertálás C++ nyelven

Binarisbol Decimalissa Konvertalas C Nyelven



A cikkben látni fogjuk a bináris értékek decimális értékké konvertálását egy C++ programban. A bináris számot a 0 és az 1 számjegy jelenti, míg a decimális értékek 0 és 9 közötti számjegyeket tartalmaznak. A binárisból decimálissá konverzió végrehajtásához a bináris értéket meg kell szorozni 2-vel, a következő hatványra emelve. n” jobbról indulva és balra haladva magasabb „n”-nel. Valósítsuk meg ezt a kódban, hogy egy binárist decimális értékké alakítsunk.

1. példa: Bináristól decimálissá programozás a „while” ciklus használatával

Van egy következő programunk a számok binárisról decimálisra konvertálására. A programon belül a „while” ciklust használjuk a decimális bináris konvertáláshoz.

#include
#include

segítségével névtér std ;

int conversionOfBin ( hosszú hosszú ) ;

int fő- ( ) {
hosszú hosszú az egyiken ;
cout << 'Kétes szám szükséges: ' ;
enni >> az egyiken ;
cout << az egyiken << ' binárisan = ' << conversionOfBin ( az egyiken ) << 'tizedesben' ;
Visszatérés 0 ;
}

int conversionOfBin ( hosszú hosszú az egyiken ) {
int így = 0 , x = 0 , maradék ;

míg ( az egyiken ! = 0 ) {
maradék = az egyiken % 10 ;
az egyiken / = 10 ;
december + = maradék * hadifogoly ( 2 , x ) ;
++ x ;
}

Visszatérés így ;
}

Itt meghatározzuk az „iostream” fejlécfájlt a bemeneti és kimeneti adatfolyamokhoz, valamint a „cmath”-ot a program matematikai függvényének használatához. Ezt követően definiáljuk a ConversionOfBin() függvényt, ahol a „long long” típusú paramétert adjuk át. Ezután van egy main() függvényhívásunk a program végrehajtásához. A main() függvényben deklarálunk egy „num” nevű hosszú inter típusú változót.







Ezt követően a ConversionOfBin() függvény a bevitt bináris számot decimális számmá alakítja. Ehhez az illesztőprogram kódja után megvan a ConversionOfBin() függvény definíciója. A ConversionOfBin() függvény a „num” változóval kerül átadásra, amely bináris számmal rendelkezik. Ezután meghívjuk a „while” hurkot, hogy a „szám” bináris számot decimális értékké alakítsuk. Ezt megelőzően inicializáljuk a „deci”, „x” és „remainder” változókat „0” értékkel.



A „while” cikluson belül az osztási műveletet a bináris szám jobb szélső értékének reprezentálására hajtják végre. Az osztás eredményeit a „remainder” változó tárolja. Ezután a maradék és a hatvány eredményét hozzáadjuk a „deci” változóhoz. Az „x” változó folyamatosan értékeli a 2 aktív teljesítményét.



A megadott bináris számok decimális értékké konvertálásának eredménye a C++ konzolban érhető el:





2. példa: Bináristól decimálissá programozás a „For” ciklus használatával

A binárisról decimálisra való átalakítást „while” ciklus segítségével hajtották végre. Használhatjuk azonban a „for” ciklus módszerét is, hogy a bináris biteket decimális számmá alakítsuk.



#include
#include

int fő- ( ) {
std :: húr kuka ;
std :: cout << 'Bináris szám megadása: ' ;
std :: enni >> kuka ;

int december = 0 ;
int alapIs = 1 ;

számára ( int a = kuka. hossz ( ) - 1 ; a >= 0 ; a -- ) {
ha ( kuka [ a ] == '1' ) {
december + = alapIs ;
}
alapIs * = 2 ;
}

std :: cout << 'Eredmények tizedesben: ' << december << std :: endl ;

Visszatérés 0 ;
}

Itt kezdjük a main() függvényprogrammal, ahol van az „std::string” változó, amely a „bin” a felhasználó által a promptban bevitt bináris szám tárolására. Kezdetben a prompt arra kéri a felhasználót, hogy adja meg a bináris számot a „cout” utasítással. Ezután a „cin” parancs beolvassa ezt a bináris számot. Ezt követően inicializáljuk a „dec” változót „0” értékkel, a „baseIs” változót pedig „1” értékkel, hogy megkapjuk a decimális megfelelőjét.

Ezután hívunk egy „for” ciklust, amely a megadott bináris minden egyes számain áthalad jobbról balra. A cikluson belül van egy „if” feltételünk annak ellenőrzésére, hogy a bináris szám 1-e. Ha 1, akkor a decimális érték hozzáadódik a „dec” változóhoz. A „baseIs” változó 2-es hatványával minden iterációnál meg kell szorozni 1-gyel.

A bináris szám értéke és decimális értékké való konvertálása a prompt képernyőn jelenik meg:

3. példa: Bináris karakterlánc programozása decimálisra

A bináris karakterlánc értéke most úgy van megadva, hogy az értékét decimális értékké konvertálja. A következő megvalósítást hajtjuk végre a bináris karakterlánc értékének decimális értékké alakításához:

#include
#include
segítségével névtér std ;

int binToDec ( string val )
{
karakterlánc értéke = val ;
int decimális_érték = 0 ;

int alap_érték = 1 ;

int csak = érték. hossz ( ) ;
számára ( int m = csak - 1 ; m >= 0 ; m -- ) {
ha ( val [ m ] == '1' )
decimális_érték + = alap_érték ;
alap_érték = alap_érték * 2 ;
}

Visszatérés decimális_érték ;
}

int fő- ( )
{
string val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Itt kezdjük egy BinToDec() függvény létrehozásával a bináris számjegyek decimális értékké konvertálásához. A BinToDec() függvény a karakterlánctípus „val” argumentumát veszi fel. A BinToDec() függvényen belül a „value” változót inicializáljuk a „val” változóval, ami azt jelenti, hogy a „val” változó értéke az „value” változóban lesz tárolva. Ezután deklarálunk egy új „decimal_value” változót, amelyhez 0 értéket rendelünk.

Hasonlóképpen, a „base_value” változót 1-es értékkel állítjuk be és inicializáljuk. Ezután definiáljuk a „len” változót, ahol a long() függvényt hívjuk meg, hogy megkapjuk a bináris szám hosszát. A változó inicializálása után megkapjuk a „for” ciklus iterációját. A „for” ciklus minden bináris számjegyet iterál jobbról balra.

Ezt követően van egy main() függvényünk, ahol a bináris szám karakterlánc értékeként van megadva a „val” változóhoz, amelyet decimális értékké alakítunk, ahogy a BinToDec(val) függvényt a „cout” paranccsal hívjuk.

A karakterlánc típusú bináris értéket a rendszer most decimális értékké konvertálja, amint az a következőkben látható:

4. példa: Bináristól decimálissá programozás a Bitset osztály használatával

Ezenkívül a bináris számot decimális számmá alakíthatjuk, ha a programban meghatározzuk a C++ „bitset” osztályát. Olyan funkciókat biztosít, amelyeken keresztül az átalakítási eljárás nagyon egyszerű.

#include
#include

int fő- ( ) {
std :: húr binárisIs ;
std :: cout << 'Kérjük, adjon meg bináris számot:' ;
std :: enni >> binárisIs ;

std :: bitkészlet < 64 > bináris ( binárisIs ) ;
aláírás nélküli hosszú decimális szám = bináris. túl hosszú ( ) ;

std :: cout << 'Decimális szám: ' << decimális szám << std :: endl ;

Visszatérés 0 ;
}

Itt beállítjuk a C++ „bitset” könyvtárát a fejlécben, ami nagyon hasznos, ha bináris értékekkel dolgozunk. Ezek után van egy main() függvénydefiníciónk, ahol az „std::string”-et használjuk a „binaryIs” változó deklarálására. A „binaryIs” változó a bináris értékét tárolja a karakterláncban. Ezután megkérjük a felhasználót, hogy adja hozzá a bináris számot a prompthoz, és a „cin” paranccsal olvassa be. Ezt követően beállítjuk a bitek méretét, amelyek 64 bites egészek lehetnek. Ezután a to_ulong() függvény a „bitset” osztályból a „decimalNumber” változóba kerül meghívásra. A to_ulong() függvény a bitkészletet előjel nélküli hosszú adattípussá alakítja. Végül a „cout” paranccsal kinyomtatjuk a felhasználó által megadott bináris érték decimális értékét.

A felhasználó által megadott bináris érték most decimális értékké alakul:

Következtetés

Végezetül bemutattuk a bináris érték decimális értékké konvertálásának módszereit. A „for” ciklust, a „while” ciklust és a bitset osztály megközelítést használtuk a bináris decimális átalakításhoz. Ezek a megközelítések a bináris számokat decimális rendszerré alakítják át, ami megkönnyíti az olvasást és a megértést.