Binární převod na desítkové v C++

Binarni Prevod Na Desitkove V C



V článku uvidíme převod binárních hodnot na desítkové hodnoty v programu C++. Binární číslo je reprezentováno číslicemi 0 a 1, zatímco desetinné hodnoty obsahují číslice v rozsahu od 0 do 9. Chcete-li provést převod z binární na desítkovou, je třeba binární hodnotu vynásobit 2 umocněnou „ n“ začínající zprava a pohybující se doleva s vyšším „n“. Implementujme to do kódu, abychom převedli binární kód na desítkovou hodnotu.

Příklad 1: Program z binárního na desítkové pomocí smyčky „While“.

Máme následující program pro převod čísla z binárního na desítkové. V programu využíváme smyčku „while“ pro binární převod do desítkové soustavy.

#include
#include

použitím jmenný prostor std ;

int conversionOfBin ( dlouho dlouho ) ;

int hlavní ( ) {
dlouho dlouho na jednom ;
cout << 'Vyžadováno binární číslo: ' ;
jíst >> na jednom ;
cout << na jednom << 'binárně =' << conversionOfBin ( na jednom ) << 'v desítkové soustavě' ;
vrátit se 0 ;
}

int conversionOfBin ( dlouho dlouho na jednom ) {
int tak = 0 , X = 0 , zbytek ;

zatímco ( na jednom ! = 0 ) {
zbytek = na jednom % 10 ;
na jednom / = 10 ;
prosinec + = zbytek * pow ( 2 , X ) ;
++ X ;
}

vrátit se tak ;
}

Zde definujeme hlavičkový soubor „iostream“ pro vstupní a výstupní proudy a „cmath“ pro využití matematické funkce v programu. Poté definujeme funkci ConversionOfBin(), kde se předává parametr typu „long long“. Dále máme volání funkce main() ke spuštění programu. Uvnitř funkce main() deklarujeme proměnnou typu long inter nazvanou „num“.







Poté funkce ConversionOfBin() převede vstupní binární číslo na desítkové číslo. K tomu máme definici funkce ConversionOfBin() za kódem ovladače. Funkce ConversionOfBin() se předává s proměnnou „num“, která má binární číslo. Potom zavoláme smyčku „while“, abychom převedli binární číslo v „num“ na desítkovou hodnotu. Před tím inicializujeme proměnné „deci“, „x“ a „remainder“ s hodnotou „0“.



V rámci cyklu „while“ se operace dělení provádí tak, aby představovala hodnotu binárního čísla zcela vpravo. Výsledky dělení jsou uloženy v proměnné „zbytek“. Poté do proměnné „deci“ sečteme výsledky zbytku a výsledky výkonu. Proměnná „x“ stále vyhodnocuje činný výkon 2.



Výsledky převodu zadaných binárních čísel na desítkové hodnoty jsou dosaženy v konzole C++:





Příklad 2: Program z binárního na desítkové pomocí smyčky „For“.

Transformace z binární na desítkovou byla provedena pomocí smyčky „while“. Můžeme však také použít metodu cyklu „for“ k transformaci binárních bitů na desítkové číslo.



#include
#include <řetězec>

int hlavní ( ) {
std :: tětiva zásobník ;
std :: cout << 'Vstupní binární číslo: ' ;
std :: jíst >> zásobník ;

int prosinec = 0 ;
int baseIs = 1 ;

pro ( int A = zásobník. délka ( ) - 1 ; A >= 0 ; A -- ) {
-li ( zásobník [ A ] == '1' ) {
prosinec + = baseIs ;
}
baseIs * = 2 ;
}

std :: cout << 'Výsledky v desítkové soustavě:' << prosinec << std :: endl ;

vrátit se 0 ;
}

Zde začneme s programem funkce main(), kde máme proměnnou „std::string“, což je „bin“ pro uložení binárního čísla zadaného uživatelem do výzvy. Zpočátku výzva požádá uživatele o zadání binárního čísla pomocí příkazu „cout“. Poté příkaz „cin“ toto binární číslo přečte. Poté inicializujeme proměnnou „dec“ s hodnotou „0“ a proměnnou „baseIs“ s hodnotou „1“, abychom získali desetinný ekvivalent.

Potom zavoláme smyčku „for“, která prochází přes každé číslo zadané binární soustavy zprava doleva. V rámci cyklu máme podmínku „if“, abychom ověřili, zda je binární číslo 1. Pokud je 1, je k proměnné „dec“ přidána desetinná hodnota. Proměnná „baseIs“ má mocninu 2, kterou lze v každé iteraci vynásobit 1.

Hodnota binárního čísla a jeho převod na desítkovou hodnotu se zobrazí na obrazovce výzvy:

Příklad 3: Program binárního řetězce na desítkové

Hodnota binárního řetězce je nyní definována pro převod její hodnoty na desítkovou hodnotu. Následující implementace se provádí pro transformaci hodnoty binárního řetězce na desítkovou hodnotu:

#include
#include <řetězec>
použitím jmenný prostor std ;

int binToDec ( řetězec val )
{
hodnota řetězce = val ;
int desítková_hodnota = 0 ;

int základní_hodnota = 1 ;

int jen = hodnota. délka ( ) ;
pro ( int m = jen - 1 ; m >= 0 ; m -- ) {
-li ( val [ m ] == '1' )
desítková_hodnota + = základní_hodnota ;
základní_hodnota = základní_hodnota * 2 ;
}

vrátit se desítková_hodnota ;
}

int hlavní ( )
{
řetězec val = '11100101' ;
cout << binToDec ( val ) << endl ;
}

Zde začneme vytvořením funkce BinToDec() pro převod binárních číslic na desítkové hodnoty. Funkce BinToDec() přebírá argument „val“ typu řetězec. V rámci funkce BinToDec() inicializujeme proměnnou „value“ proměnnou „val“, což znamená, že hodnota proměnné „val“ bude uložena v proměnné „value“. Poté deklarujeme novou proměnnou „decimal_value“, které je přiřazena hodnota 0.

Podobně je nastavena a inicializována proměnná „base_value“ s hodnotou 1. Dále definujeme proměnnou „len“, kde je volána funkce length() pro získání délky binárního čísla. Po inicializaci proměnné máme iteraci cyklu „for“. Smyčka „for“ iteruje každou číslici binárního čísla zprava doleva.

Poté máme funkci main(), kde je binární číslo zadáno jako řetězcová hodnota do proměnné „val“, která se převede na desítkovou hodnotu, když zavoláme funkci BinToDec(val) příkazem „cout“.

Binární hodnota typu řetězce je nyní převedena na desítkovou hodnotu, jak je zobrazeno v následujícím textu:

Příklad 4: Program z binárního na desítkové s použitím třídy bitové sady

Navíc můžeme binární číslo převést na desítkové tím, že v programu definujeme třídu „bitset“ jazyka C++. Poskytuje funkce, jejichž prostřednictvím je postup převodu velmi jednoduchý.

#include
#include

int hlavní ( ) {
std :: tětiva binární je ;
std :: cout << 'Uveďte binární číslo:' ;
std :: jíst >> binární je ;

std :: bitset < 64 > binární ( binární je ) ;
nepodepsaný dlouho desetinné číslo = binární. příliš dlouho ( ) ;

std :: cout << 'Desetinné číslo:' << desetinné číslo << std :: endl ;

vrátit se 0 ;
}

Zde jsme v záhlaví nastavili „bitset“ knihovnu C++, což je velmi užitečné při práci s binárními hodnotami. Poté máme definici funkce main(), kde pomocí „std::string“ deklarujeme proměnnou „binaryIs“. Proměnná „binaryIs“ ukládá do řetězce hodnotu binárního kódu. Dále požádáme uživatele, aby přidal binární číslo do výzvy uživatelem a načte se pomocí příkazu „cin“. Poté upravíme velikost bitů, která může být 64 bitů celá. Poté je funkce to_ulong() volána z třídy „bitset“ do proměnné „decimalNumber“. Funkce to_ulong() převede sadu bitů na datový typ long unsigned. Nakonec použijeme příkaz „cout“ k vytištění desítkové hodnoty binární hodnoty zadané uživatelem.

Binární hodnota poskytnutá uživatelem je nyní převedena na desítkovou hodnotu:

Závěr

Na závěr jsme probrali metody převodu binární hodnoty na desítkovou hodnotu. Pro binární převod do desítkové soustavy jsme použili smyčku „for“, smyčku „while“ a přístupy třídy bitset. Tyto přístupy převádějí binární čísla do desítkových soustav, což usnadňuje čtení a porozumění.