Funkce any2dec – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Funkce any2dec – C / C++ – Fórum – Programujte.comFunkce any2dec – C / C++ – Fórum – Programujte.com

 

Sedush0
Duch
29. 11. 2009   #1
-
0
-

Zdravím mistři..Začala jsem dělat program na převod mezi číselnými soustavami a úplně jsem se zasekla na funkci, která mi má převádět číslo z jakékoliv soustavy do desítkové. Program dělám už nějakou tu chvíli a jsem do toho už úplně zamotaná. Prosím o jakoukoliv radu, popř. nasměrovaní k vyladění programu :) Zdroják funkce:



void any2dec(){
int vysl, o, cislo;
char prevod[256] = {0};
char test[90] = "12FC";//cislo na prevod v hexa
int i = 4; //delka cisla
int zs = 16; //zaklad soustavy

prevod['0'] = 0;
prevod['1'] = 1;
prevod['2'] = 2;
prevod['3'] = 3;
prevod['4'] = 4;
prevod['5'] = 5;
prevod['6'] = 6;
prevod['7'] = 7;
prevod['8'] = 8;
prevod['9'] = 9;
prevod['A'] = 10;
prevod['B'] = 11;
prevod['C'] = 12;
prevod['D'] = 13;
prevod['E'] = 14;
prevod['F'] = 15;

for (o = 0; o < i ; o++){
cislo = prevod[(char) test[i]];
vysl += mocnina(zs,o) * cislo;
i--;
}
printf("%d", vysl);

}


Předem díky za každou radu..

Nahlásit jako SPAM
IP: 88.146.249.–
H4wk.cz0
Newbie
29. 11. 2009   #2
-
0
-

[seznam]i bys rozhodně neměla v cyklu měnit. Je to krajní mez.[/seznam]
[seznam]většinou chceš použit proměnnou, kterou máš v cyklu, tedy brát prvky na indexech o[/seznam]
[seznam]test je pole charů, nepotřebuješ je přetypovávat[/seznam]
[seznam]nepotřebuješ umocňovat, pokud znáš Hornerovo schéma, vylepší ti to časovou složitost[/seznam]
[seznam]je potřeba na začátku si vynulovat proměnné[/seznam]
[seznam]možná bych tu funkci pojmenoval hex2dec ;)[/seznam]

vysl = 0;

for (o = 0; o < i ; o++){
cislo = prevod[(test[o]];
vysl *= 16;
vysl += cislo;
}

Nahlásit jako SPAM
IP: 90.180.131.–
http://ksp.mff.cuni.cz - Nauč se opravdu programovat
Sedush0
Duch
29. 11. 2009   #3
-
0
-

To H4wk.cz : Díky moc. Prozatím to je jenom hex2dec, ale ten základ soustavy a délka pole charů bude proměnná. Takže časem z toho bude any2dec snad :) Ještě jednou díky za radu, zatím se měj

Nahlásit jako SPAM
IP: 88.146.249.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý