[ Príspevkov: 14 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.10.08
Prihlásený: 19.01.13
Príspevky: 4
Témy: 1 | 1
NapísalOffline : 28.01.2009 20:35 | int64

prosim poviete mi niekto nieco o tejto premennej? doteraz som sa s nou nestretol ale teraz ju potrebujem lebo longint mi nestaci... bohuzial mi ju pascal nechce zobrat... dakujem :)


Offline

Skúsený užívateľ
Skúsený užívateľ
int64

Registrovaný: 11.01.09
Prihlásený: 04.05.24
Príspevky: 1385
Témy: 9 | 9
Bydlisko: Hrinova
NapísalOffline : 28.01.2009 21:06 | int64

Int64 je 64 bitový (teda 8 bajtový) celočíselný dátový typ. Píšeš, že pascal ti ho nechce zobrať. Mohol si aspoň napísať, akú verziu pascalu používaš, pretože tento dátový typ je napr. v Delphi zavedený až od verzie 4 (v iných jazykoch netuším). Dúfam, že som ti aspoň trochu pomohol.

Skús sa ešte poprípade pozriet sem.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.10.08
Prihlásený: 19.01.13
Príspevky: 4
Témy: 1 | 1
Napísal autor témyOffline : 28.01.2009 21:17 | int64

Turbo Pascal 7.0 nepojde to tu?


Offline

Skúsený užívateľ
Skúsený užívateľ
int64

Registrovaný: 11.01.09
Prihlásený: 04.05.24
Príspevky: 1385
Témy: 9 | 9
Bydlisko: Hrinova
NapísalOffline : 28.01.2009 21:57 | int64

Fuuf, asi ťa sklamem, ale zrejme nepôjde :-) Keď potrebuješ súrne ukladať veľké čislo do premennej, tak sa to určite dá napríklad pospájaním viacerých premenných (ale to nie je veľmi profesionálne), alebo ešte lepšie priamym prístupom na danú pamäť, ktorú si vyhradíš a vyplníš ju postupne po 16 bitoch až do požadovanej veľkosti premennej (teda do 64 bitov). Hodil by som aj nejaký príklad, ale tak ja by som vedel iba vo vkladanom assembleri, ale určite ti niekto poradí lepší spôsob.


Offline

Užívateľ
Užívateľ
int64

Registrovaný: 19.09.06
Prihlásený: 21.04.24
Príspevky: 749
Témy: 31 | 31
Bydlisko: Ružomberok&...
NapísalOffline : 29.01.2009 0:56 | int64

mozno by sa dal pouzit datovy typ realny, pricom by si pouzival nieco ako trunc(nazov_premennej) pre celociselny pristup k danej premennej. Ale teraz si nespomeniem na presnu velkost, ktory je 64bit, ale extended by mal byt 80 bitovy, ak nie je nejaky iny 64 bitovy.


Offline

Skúsený užívateľ
Skúsený užívateľ
int64

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 29.01.2009 10:17 | int64

To by som nerobil, hrozí ti strata presnosti (pri počítaní s celočíselnými dátovými typmi je zaručená dokonalá presnosť operácii, ale "reálne" čísla majú úplne inú reprezentáciu FPNS, ktorá postupne kumuluje chyby).


_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.10.08
Prihlásený: 19.01.13
Príspevky: 4
Témy: 1 | 1
Napísal autor témyOffline : 29.01.2009 14:01 | int64

uf, no nevim co teda...

potreboval by som do nejakej premennej ulozit hodnotu P^R pricom plati
0<=P,R<=2^31 cize musi to zvladnut (2^31)^(2^31)

longint je malo


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 30.04.08
Prihlásený: 15.05.15
Príspevky: 884
Témy: 3 | 3
NapísalOffline : 29.01.2009 14:21 | int64

Vies si predstavit kolko to je? To mas 2 147 483 648^2 147 483 648 - na ulozenie tohto cisla ti nepostaci ziadny datovy typ premennej... :D


_________________
Empty your memory, with a free()… like a pointer!
If you cast a pointer to an integer,
it becomes the integer, if you cast a pointer to a struct, it becomes the struct…
The pointer can crash…, and can overflow…
Be a pointer my friend…
Offline

Skúsený užívateľ
Skúsený užívateľ
int64

Registrovaný: 30.05.06
Prihlásený: 08.10.14
Príspevky: 1756
Témy: 35 | 35
Bydlisko: BA - WESTSIDE
NapísalOffline : 29.01.2009 15:35 | int64

V tom prípade je načase siahnuť po nejakom lepšom algoritme, alebo programovacom nástroji. Napr. Python dokáže pracovať s "neobmedzene" veľkými celými číslami, prípadne sa dajú použiť nejaké dynamické štruktúry napr. v C++ (tuším sa to volá vector). Každopádne, obmedzenie je v pamäti tvojho počítača, no netrúfam si odhadnúť, koľko bajtov by zaberalo číslo (2^31)^(2^31).

A preto si myslím, že je najvyšší čas lepšie porozmýšľať nad algoritmom... Skús nejak načrtnúť tvoju úlohu a svoje riešenie a my ti s tým nejak pomôžeme.


_________________
A. S. Tanenbaum píše:
The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice.
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 25.10.08
Prihlásený: 19.01.13
Príspevky: 4
Témy: 1 | 1
Napísal autor témyOffline : 30.01.2009 0:35 | int64

no je to na jednu sutaz... ono mozem pouzit bud pascal alebo c++, bohuzial v cecku zatial programovat neviem.. :(

no som si myslel ze takto to asi nepojde... ono dynamicke programovanie- smerniky, haldy a tak... to by to asi vyriesilo nie?

len keby som ich ja vedel :D
ok dakujem teda velmi pekne za to ze tomu aspon chapem trochu teraz a za ochotu :)


Offline

Skúsený užívateľ
Skúsený užívateľ
int64

Registrovaný: 11.01.09
Prihlásený: 04.05.24
Príspevky: 1385
Témy: 9 | 9
Bydlisko: Hrinova
NapísalOffline : 30.01.2009 11:07 | int64

Ak ti stačí iba porovnanie čísel, tak to môžeš skúsiť pomocou logaritmov alebo skôr pomocou exponenciálnych rovníc. Upravíš základy na rovnaké číslo a už iba porovnáš exponenty. Na to ti bude hravo stačiť integer.


Offline

Užívateľ
Užívateľ
int64

Registrovaný: 14.07.08
Prihlásený: 28.01.21
Príspevky: 86
Témy: 15 | 15
Bydlisko: Bratislava
NapísalOffline : 04.02.2009 22:42 | int64

Citácia:
nejaké dynamické štruktúry napr. v C++ (tuším sa to volá vector)


Stym sa to neda riesit, je to nieco ine nez si myslis. Vector je dynamicky kontajner.

Citácia:
ono dynamicke programovanie- smerniky, haldy a tak... to by to asi vyriesilo nie?


Nie.


Offline

Užívateľ
Užívateľ
int64

Registrovaný: 30.05.07
Prihlásený: 29.03.14
Príspevky: 641
Témy: 46 | 46
NapísalOffline : 04.02.2009 23:55 | int64

dynamicke programovanie to imho dokaze, ked vie clovek ako to implementovat, takze aj vector z cpp aj pascalovske smerniky by to mohli zvladnut - alebo hovorite o niecom inom?


Offline

Užívateľ
Užívateľ
int64

Registrovaný: 14.07.08
Prihlásený: 28.01.21
Príspevky: 86
Témy: 15 | 15
Bydlisko: Bratislava
NapísalOffline : 05.02.2009 14:26 | int64

IMHO Dynamcke programovanie to samo o sebe nevyriesi, je potreba urobit implementaciu mechanizmu ulozenia tak obrovskych cisiel a mechanizmus prace s nimi. Je len na tebe ci to implementujes pomocou haldy alebo zasobniku.

Kazdopadne co je dolezitejsie, pochybujem ze by to niekto robil takymto sposobom. Vo vedeckych aplikaciach sa urcite robi s nevypocitanymi vyrazmi. Tak ako bolo predomnou spravne povedane, nech skusi tazatel vykonat vypocty pomocou vyrazov.


 [ Príspevkov: 14 ] 


int64



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

pascal int64

v Assembler, C, C++, Pascal, Java

3

363

16.05.2012 22:49

nBXXL

V tomto fóre nie sú ďalšie neprečítané témy.

Pascal - int64 a uint64

v Assembler, C, C++, Pascal, Java

1

210

27.02.2013 21:33

F3RY



© 2005 - 2024 PCforum, edited by JanoF