Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Warchangel 17. 04. 2012, 16:37:46
-
Aky typ premennej musim definovat, aby som do nej mohol ulozit viac ako 32 bitove cislo?
-
Treba pouzit: long long
-
long ale to zalezi od systemu, ci je 64bit , alebo 32
int64_t by malo byt stale. pripadne long long alebo double pre floating point
-
long ale to zalezi od systemu, ci je 64bit , alebo 32
int64_t by malo byt stale. pripadne long long alebo double pre floating point
staci mu long long - rikal vice nez 32 bit.
misto int64_t pouzij int32_t (myslim sys/types.h)
-
Na co to potřebuješ a kolik bitů to číslo má mít? Může být záporné? Nebo jde o indexaci prvků pole/vektoru? Nebo o kryptografii či jiné matematické výpočty?
určitě si udělej někde na začátku zdrojáku nejlépe v headeru:
typedef unsigned long long BigInteger;
const BigInteger BigIntegerMin = 0ULL;
const BigInteger BigIntegerMax = ~0ULL;
a pak všude používej BigInteger x = 1234;
výhodou je že později můžeš kdykoliv změnit co je BigInteger, nebo použít podmíněný překlad pro různé překladače
Pokud potřebuješ více než 64 bitů a nebo některý z cílových kompilátorů/standardů vůbec tyto typy nezná, můžeš použí gmp
http://gmplib.org/
wikipedie má pěkný example pro ilustraci:
http://en.wikipedia.org/wiki/GNU_Multiple_Precision_Arithmetic_Library