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.