Předmět Autor Datum
Woow!! toto nestačí? -9223372036854775808 .. 9223372036854775807 LongWord 0 .. 18446744073709551615…
pme 15.10.2011 16:41
pme
Longint je jen –2 147 483 648 až 2 147 483 647. Takhle mi to ukazuje.
Uzivatel 15.10.2011 16:52
Uzivatel
Integer je 32-bit (-2147483648 .. 2147483647) a Longint má 64-bitový rozsah (-9223372036854775808 ..…
pme 15.10.2011 16:55
pme
Já se nechci hádat, ale když použiju longint, tak mě to víc jak 2147483647 nepustí.
Uzivatel 15.10.2011 16:59
Uzivatel
Však v poriadku... "On some platforms" = na niektorých platformách. Na čom sa to snažíš? Procesor, O…
pme 15.10.2011 17:01
pme
Používám Free Pascal IDE.
Uzivatel 15.10.2011 17:04
Uzivatel
Snáď si to dokážeš preložiť do svojej rodnej reči a snáď to aj pochopíš: wiki.freepascal.org Resp.…
pme 15.10.2011 17:10
pme
Skus kuknut tu na Int64 alebo QWord http://lazarus-ccr.sourceforge.net/fpcdoc/ref/refs u5.html#x26-2…
MM.. 15.10.2011 17:21
MM..
Všetko mu to bude naprd, ak nemá procesor, ktorý dokáže používať 64-bit inštrukcie...;-)
pme 15.10.2011 17:28
pme
int64 funguje aj na 32bitovom prekladaci a teda aj na 32bitovom CPU. Je to predsa vec prekladaca. Ni…
MM.. 15.10.2011 18:17
MM..
BTW. keby si velmi chcel mohol by si si dodefinovat vlastne typy 128bitove, 256bitove, alebo trebars… poslední
MM.. 15.10.2011 18:24
MM..
Ok, děkuji
Uzivatel 15.10.2011 18:11
Uzivatel

Skus kuknut tu na Int64 alebo QWord
http://lazarus-ccr.sourceforge.net/fpcdoc/ref/refs u5.html#x26-260003.1.1
ale tie dve veci nemusia byt pouzitelne uplne vsade kde sa da pouzit integer, ale mali by byt pouzitelne (aj v 32bitovom programe)
P.S. ked to nepojde tak zahod pascal a pouzivaj C++, tam je __int64 bezproblemove.

Ale rozmysli si ci potrebujes dokonalu presnost, ak neporetbujes dokonalu presnost tak mozes pouzit realne cisla http://lazarus-ccr.sourceforge.net/fpcdoc/ref/refs u6.html#x27-300003.1.2
ale v tom pripade pozor na chyby vypoctu (vznikajuce zaokruhlovanim), ktore u realnych cisel nastavaju skoro vzdy.

Ak potrebujes narabat s extremne velkymi integer cislami (viac jak 2^64 tak si budes muset definovat ako pole a pre potrebne operacie napisat vlastne funkcie ktore narabaju s jednotlivimi castami cisla v poli.

int64 funguje aj na 32bitovom prekladaci a teda aj na 32bitovom CPU. Je to predsa vec prekladaca. Nikde neni napisane ze int musi byt v jednom registri. Prekladac ho moze nacpat do dvoch. Delenie a nasobenie a scitane je mozne robit na x86 platforme aj s dvojicou registrov velmi jednoducho (scitanie s pomocou CY flagu a instrukcie na delenie a nasobenie robia s dvojicou registrov nativne, odjakziva //P.S. samozrejme musi prekladac pridat trochu kodu k tomu, neda sa to vseobecne urobit len jednou instrukciou).

BTW. keby si velmi chcel mohol by si si dodefinovat vlastne typy 128bitove, 256bitove, alebo trebars aj 65536bitove :D ako objekt (triedu) a definovat si k tomu typu zakladne aritmeticke operacie ako metody triedy...
P.S. v programovani neexistuje "neda sa". Existuje len "nikto to este za mna neurobil takze nemozem sa furt hrat na lepica komponentov, ale musim programovat nejaky komponent sam".

Zpět do poradny Odpovědět na původní otázku Nahoru