

existuje v C funkce pro kontrolu přetečení?
Čau, potřebuju zkontrolovat přetečení, mám to v typu unsigned long a hlídat jestli to nepřeteče konstantu ULONG_MAX. Číslo musím načítat po znaku, takže vždy to přičítám tak, že vynásobím to staré 10 a přičtu tu načtenou číslici, ale když to přeteče, tak už je pozdě a číslo je malé a splňuje podmínku že je menší než ULONG_MAX. Použil jsem pomocné z usnigned long long, ale to funguje pouze v 32bitovém překladači, v 64bitovém je bohužel long a long long úplně to stejné číslo:( ..
Vím, že pro jiné jsou funkce které, to jakoby otestují dopředu, že to vyzkouší, ale v C o nich nevím, tak jestli jsou a nebo jestli někdo nemá nějaký nápad jak to vyřešit. Díky moc
A co takhle po každém vynásobení zkontrolovat jestli to není méně než před tím?
To jsem vyzkoušel, ale nefungovalo nevím proč. Napadlo mě, kontrolovat, zda je to nové číslo větší než to starší, ale nefungovalo to. Zkusím to ještě nějak, ale právě jestli to nejde nějak jinak?
Z jakého důvodu to nefungovalo? Asi jsi to měl špatně.
Můžu ti sem dát kód mám? A ono to funguje jen pro nějaké čísla, nevím proč? třeba 6544084638 to neudělá a prostě přeteče a 8765987654 to napíše, že je moc velké a chyba.
Ten už tu měl být hned od začátku.
tak v příloze
[mod]Příloha na žádost autora mailem odstraněna (Rce)[/mod]
Nikde nevidím, že bys proměnnou number inicializoval.
ajo promiň ta je nahoře v globálních, pracuju s ní pak dál, kde ji konvertuju atd.
EDIT: je v unsigned long
Ale ono to půjde i jinak:
V C nedělám, tak si kdyžtak uprav nedostatky.
vypadá to, že to funguje, ještě budu testovat, ale díky moc.. mohl by jsi mi prosím, jen stručně napsat co to dělá? já to zkoušel pochopit, ale nějak se z teho nemůžu vyhrabat, možná to je tím, že do teho teď tak dlouho hledím .. díky moc
No prostě si spočítáš jak maximálně velké může číslo být, aby po vynásobení 10 a přičtení dalšího čísla nepřeteklo.
Ale má tam být jenom
už jsem to zkusil, jsem si to po krocích vypsal na papír.. akorát tam musí být i number == maximum u té císlice, protože to potom jinak vypíná při každé číslicí větší než to maxmod ..
ještě malej dotaz, jde smazat ten soubor nahraný tam? nemusel by ho nikdo najít totiž.. jen jestli nevíš jak? díky
Teď jsem nepochopil, co jsi mi tam vlastně upravil.
Jak smazat nahraný soubor netuším.
oki a nic nic, já myslel po prvé to s tím, že tam má být jen cislice > ... jako, že tam nemá být to maximum ==... předtím, ale pak mi došlo, že jsi myslel, že ne => a to už jsem měl změněné, toho jsem si všiml ..
oki nevadí no, snad to nikdo nebude hledat :D .. díky moc za radu, už jsem nevěděl jak na to
32bitovy prekladac ma typ int64 (alebo __int64)
P.S. to porovnavanie pred operaciou je jednoduchsie. T.j. porovnavas pociatocne cislo s (MAX_ULONG-neco)/10