Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
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 .