Jak převést binární čísla na desetinná čísla v C

Jak Prevest Binarni Cisla Na Desetinna Cisla V C



Binární čísla jsou kombinace 0 a 1, zatímco desetinná čísla jsou čísla se základem 10. V programování v C převádíme binární čísla na desítková čísla, abychom zlepšili výkon kódu a usnadnili studentům jeho pochopení.

Tento návod se bude zabývat tím, jak převést binární čísla na desítková čísla v C.

Než se pustíme do samotného konceptu, podívejme se, co jsou binární a desetinná čísla v C.







Binární a desetinné formáty čísel v C

Binární čísla jsou čísla reprezentovaná ve formě kombinace dvou číslic 0 a 1 a označují se jako základní 2 číselná soustava. Desetinná čísla jsou na druhé straně čísla se základnou 10, která se skládají z číslic v rozmezí od 0 do 9.



Jak vidíte u názvu binární, což znamená dvě, takže když máme čísla ve tvaru kombinace dvou číslic 0 a 1, nazýváme je binárními čísly. je označována jako základní 2 číselná soustava.



Proč převádět binární čísla na desetinná čísla v C

Práce s binárními čísly je pro vývojáře náročná kvůli mnoha možným kombinacím 0 a 1. Desetinná čísla jsou na druhou stranu snazší pochopit a zpracovat, což z nich dělá rychlejší a efektivnější metodu pro programy v jazyce C. Převod binárních čísel na desítková čísla v C zahrnuje vynásobení všech binárních číslic příslušnou mocninou dvou a sečtení výsledků, což se provádí pomocí smyček.





Jednoduchý algoritmus pro převod binárních na desítkové v C

Zde je jednoduchý algoritmus pro převod binárního na desítkové v C pomocí šesti jednoduchých kroků:

  • Vezměte binární číslo jako vstup od uživatele.
  • Inicializujte proměnnou ‚desítkové‘ na 0 a proměnnou ‚základ‘ na 1.
  • Extrahujte číslici nejvíce vpravo binárního čísla pomocí modulového operátoru (%) a přidejte součin této číslice a základu k desítkové proměnné.
  • Vynásobte základní proměnnou 2.
  • Odstraňte číslici zcela vpravo z binárního čísla pomocí celočíselného dělení (/).
  • Opakujte kroky 3-5, dokud nebudou zpracovány všechny číslice.
  • Zobrazte desetinnou hodnotu binárního čísla uloženého v proměnné ‚decimal‘.

Převod binárních čísel na desetinná čísla v C

Následuje jednoduchý kód pro převod binárních čísel na desetinná čísla v programování C.



#include

#include

int hlavní ( ) {

dlouho dlouho A ;

printf ( 'Vložte binární číslo:' ) ;

scanf ( '%lld' , & A ) ;

printf ( '%lld v binárním tvaru = %d ve formě desítkové soustavy' , A , binaryToDecimal ( A ) ) ;

vrátit se 0 ; }

int binaryToDecimal ( dlouho dlouho A ) {

int prosinec = 0 , b = 0 , r ;

zatímco ( A != 0 ) {

r = A % 10 ;

A /= 10 ;

prosinec += r * pow ( 2 , b ) ;

++ b ;

}

vrátit se prosinec ;

}

Ve výše uvedeném kódu je jako název vytvořena globální funkce 'binaryToDecimal' . Pak v main deklarujeme long long proměnnou jako 'A' a požádejte uživatele, aby přidal binární číslo a převedl ho na desítkové zavoláním 'binaryToDecimal' funkce s parametrem a“. V 'binaryToDecimal' definice funkce dekadický převod pomocí cyklu while.

Výstup

Můžete také použít vestavěný strtol() funkce pro převod binárních čísel na desetinná místa v programování C.

Níže je uveden kód pro takovou funkci:

#include

#include

int hlavní ( ) {

char binární_řetězec [ ] = '1110' ;

char * ptr ;

dlouho desítková_hodnota ;

desítková_hodnota = havaroval ( binární_řetězec , & ptr , 2 ) ;

printf ( 'Binární řetězec' % s ' se rovná desetinné hodnotě %ld. \n ' , binární_řetězec , desítková_hodnota ) ;

vrátit se 0 ;

}

Výše uvedený kód převádí binární řetězec '1110' na ekvivalentní desetinnou hodnotu pomocí strtol() funkce, která bere binární řetězec, ukazatel na ukazatel char a základ číselné soustavy jako argumenty. Nakonec vytiskne výsledek do konzole pomocí printf().

Výstup

Závěr

Jak víme, lidé jsou obeznámeni s desítkovými čísly ve srovnání s binárními, protože je obtížné je spravovat. S desetinnými číslicemi lze snadno provádět aritmetické operace, protože jsou v základu 10 a jejich zpracování je rychlejší ve srovnání s binárními číslicemi, proto se binární čísla převádějí na desetinná místa. Výše uvedený přehled vysvětlil převod binárních čísel na desetinná místa pomocí programu C s uživatelsky definovanými funkcemi a vestavěnými strtol() funkce.