Táto príručka sa bude zaoberať tým, ako previesť binárne čísla na desiatkové čísla v C.
Než sa dostaneme k samotnému konceptu, pozrime sa, čo sú binárne a desatinné čísla v C.
Binárne a desiatkové formáty čísel v C
Binárne čísla sú čísla reprezentované vo forme kombinácie dvoch číslic 0 a 1 a označujú sa ako základná 2 číselná sústava. Desatinné čísla sú na druhej strane čísla so základom 10, ktoré pozostávajú z číslic v rozsahu od 0 do 9.
Ako vidíte pri názve binárne, čo znamená dve, takže keď máme čísla v tvare kombinácie dvoch číslic 0 a 1, nazývame ich binárne čísla. označuje sa ako základná 2 číselná sústava.
Prečo prevádzať binárne čísla na desatinné miesta v C
Práca s binárnymi číslami je pre vývojárov náročná kvôli mnohým možným kombináciám 0 a 1. Desatinné čísla sú na druhej strane jednoduchšie na pochopenie a spracovanie, čo z nich robí rýchlejšiu a efektívnejšiu metódu pre programy v jazyku C. Prevod binárnych čísel na desiatkové čísla v C zahŕňa vynásobenie všetkých binárnych číslic príslušnou mocninou dvoch a sčítanie výsledkov, čo sa robí pomocou slučiek.
Jednoduchý algoritmus na prevod binárnych údajov na desiatkové v C
Tu je jednoduchý algoritmus na konverziu binárneho na desiatkové v C pomocou šiestich jednoduchých krokov:
- Vezmite binárne číslo ako vstup od používateľa.
- Inicializujte premennú „desatinné“ na 0 a premennú „základ“ na 1.
- Extrahujte číslicu úplne vpravo binárneho čísla pomocou operátora modulu (%) a pridajte súčin tejto číslice a základu k desiatkovej premennej.
- Vynásobte základnú premennú 2.
- Odstráňte číslicu úplne vpravo z binárneho čísla pomocou celočíselného delenia (/).
- Opakujte kroky 3-5, kým nebudú spracované všetky číslice.
- Zobrazte desiatkovú hodnotu binárneho čísla uloženého v premennej „desatinná“.
Previesť binárne čísla na desatinné čísla v C
Nasleduje jednoduchý kód na prevod binárnych čísel na desatinné miesta v programovaní v jazyku C.
#include
#include
int Hlavná ( ) {
dlhý dlhý a ;
printf ( 'Prosím vložte binárne číslo: ' ) ;
scanf ( '%lld' , & a ) ;
printf ( '%lld v binárnom kóde = %d v desiatkovom tvare' , a , binaryToDecimal ( a ) ) ;
vrátiť 0 ; }
int binaryToDecimal ( dlhý dlhý a ) {
int dec = 0 , b = 0 , r ;
zatiaľ čo ( a != 0 ) {
r = a % 10 ;
a /= 10 ;
dec += r * pow ( 2 , b ) ;
++ b ;
}
vrátiť dec ;
}
Vo vyššie uvedenom kóde je ako názov vytvorená globálna funkcia 'binaryToDecimal' . Potom v hlavnom deklarujeme dlhú dlhú premennú ako 'a' a požiadajte používateľa, aby pridal binárne číslo a previedol ho na desiatkové zavolaním na 'binaryToDecimal' funkcia s parametrom a“. V 'binaryToDecimal' definícia funkcie desiatková konverzia cez cyklus while.
Výkon
Môžete tiež použiť vstavaný strtol() funkcia na prevod binárnych čísel na desatinné miesta v programovaní v jazyku C.
Nasleduje kód pre takúto funkciu:
#include#include
int Hlavná ( ) {
char binárny_reťazec [ ] = '1110' ;
char * ptr ;
dlhý desiatková_hodnota ;
desiatková_hodnota = havaroval ( binárny_reťazec , & ptr , 2 ) ;
printf ( 'Binárny reťazec' % s ' sa rovná desiatkovej hodnote %ld. \n ' , binárny_reťazec , desiatková_hodnota ) ;
vrátiť 0 ;
}
Vyššie uvedený kód konvertuje binárny reťazec '1110' na ekvivalentnú desatinnú hodnotu pomocou strtol() funkcia, ktorá berie ako argumenty binárny reťazec, ukazovateľ na ukazovateľ char a základ číselnej sústavy. Nakoniec vytlačí výsledok do konzoly pomocou printf().
Výkon
Záver
Ako vieme, ľudia poznajú desatinné čísla v porovnaní s binárnymi, pretože je ťažké ich spravovať. S desiatkovými číslicami sa ľahko vykonávajú aritmetické operácie, pretože sú v základi 10 a ich spracovanie je rýchlejšie v porovnaní s binárnymi číslicami, preto sa binárne čísla prevádzajú na desatinné miesta. Vyššie uvedený prehľad vysvetlil prevod binárnych čísel na desatinné miesta pomocou programu C s užívateľsky definovanými funkciami a vstavaným strtol() funkciu.