Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako previesť binárne na celé číslo v C Programovanie

Binárne a desatinné sú dva rôzne spôsoby , ako reprezentovať celé čísla . V programovanie C , binárne čísla sú zvyčajne uložené vo znakových reťazcoch alebo nejaký iný druh poľa . Znakové reťazce v C sú pomenované znak ukazovateľ , ktorý ukazuje na nízku bitom binárneho reťazca . Reťazec končí so zvláštnym C znaku " \\ 0 " po vysoké bitom . Prevod týchto binárne reťazca na ekvivalentná celočíselná hodnota je jednoduchý program napísať - buď opakované alebo rekurzívne . Pokyny dovolená 1

Vypracovať jasný algoritmus pre konverziu , ako začnete písať kód . Budete potrebovať dve premenné pre algoritmus : akumulátorové sledovať výsledky a " Power " premenné sledovať rastúcej sile 2 , ktorý popisuje rôzne bitové pozície v binárne číslo . Napríklad , číslo 13 je uložený v binárnom ako 1101 . Toto číslo je v skutočnosti ( 1 X 2 ^ 3 ) + ( 1 X 2 ^ 2 ) + ( 0 X 2 ^ 1 ) + ( 1 X 2 ^ 0 ) alebo 8 + 4 + 0 + 1 = 13. Kvôli spôsobu , akým binárnych číslic sú uložené v C , budeme začína na nízkej bitom a násobením každý bit narastajúcimi hodnotami napájacieho premenné a pridať ju do akumulátora .
2

Opísať funkcie v pseudokódu , vyskúšajte pseudokódu s niekoľkými príkladmi , ak je to nutné upraviť pseudokódu a písať kód v C priamo z pseudokódu . Názov funkcie : binary2integer . Vstup : ukazovateľ na typ znaku . Výstup celé číslo . Spustite funkciu tým , že definuje dve celočíselné premenné : ACC - akumulátorové a POW - hodnota , ktorá zdvojnásobí pri každom kroku v premene . Nastavte podľa na 0 a prašane na 1. Pokračovať robí tri príkazy v slučke , kým sa ukazovateľ ukazuje na " \\ 0 " znak , potom sa vráti na hodnotu podla ako hodnota funkcie . Tri výkazy slučky sú : Ak je ukazovateľ ukazuje na " 1 " , pridajte hodnotu prašane na acc , zdvojnásobiť hodnotu prašane a zvýšiť ukazovateľ poukázať na ďalší kúsok
. 3

Previesť pseudokódu do C kódu : int binary2integer ( char * p ) { int acc , pow , acc = 0 ; pow = 1 ; while (p * = ' \\ 0 ' ! ) { if ( p == * '1 ' ) acc + = pow , pow * = 2 , p + + } return podľa } . Tento kód by mal byť testovaný s niekoľkými príkladmi . Uistite sa , že kontrolu hraničných hodnôt , ako sú 0 a 1 , rovnako ako s rôznymi hodnotami , ako sú 11111 , 00000 , 10101 a 01010 .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené