Lange ints in Fortran
Ich versuche, mit großen Zahlen (~ 10 ^ 14) zu arbeiten, und ich muss sie speichern und über Schleifen dieser Länge iterieren können, d. H.
n=SOME_BIG_NUMBER
do i=n,1,-1
Ich habe die übliche Sternnotation ausprobiert,kind=8
etc. aber nichts scheint zu funktionieren. Dann überprüfte ich dashuge
intrinsische Funktion und der Code:
program inttest
print *,huge(1)
print *,huge(2)
print *,huge(4)
print *,huge(8)
print *,huge(16)
print *,huge(32)
end program inttest
produziert in allen Fällen die Nummer 2147483647. Warum ist das? Ich verwende gfortran (f95) auf einem 64-Bit-Computer.
Wenn ich eine Bignum-Bibliothek brauche, welche schlagen die Leute vor?