Hallo Leute,
ich habe 3 Zahlen vom Typ short:
Gerechnet soll folgendes werden: (zahl1 ^ zahl2) % modulus;
Der Einfachheit rechne ich mal nur mit Positiven Zahlen. Der grösste Wert wäre dann 32.767 .
In meinem Programm werden für alle drei Variablen zahl1, zahl2 und modulus (Zufalls-)Werte benutzt bis (pi mal daumen) 512; wobei zahl1 eher kleiner ausfällt (meist zweistellig oder gar einstellig).
Wenn ich nun beispielsweise sowas habe wie (5 ^ 47) % 107 bekomme ich falsche Werte, da es beim Potenzieren einen "arithmetic overflow" gibt,
da (5 ^ 47) = 710542735760100185871124267578125 > 32767 .
Integer, long nehme ich sehr ungern, da ich mir mit short einen Performancevorteil erhoffe. Abgesehen davon würde wohl int, long auch nicht ausreichen. Da modulus auch max. 512 brauche ich als Ergebnis auch wirklich nur short.
Gibt es fertige Klassen irgendwo zB java.util.math.* die dieses Handeln können?
Oder muss ich das selbst implementieren?
Ich danke für jegliche Hinweise.. mfg Huck
ich habe 3 Zahlen vom Typ short:
Java:
short zahl1, zahl2, modulus;
Gerechnet soll folgendes werden: (zahl1 ^ zahl2) % modulus;
Der Einfachheit rechne ich mal nur mit Positiven Zahlen. Der grösste Wert wäre dann 32.767 .
In meinem Programm werden für alle drei Variablen zahl1, zahl2 und modulus (Zufalls-)Werte benutzt bis (pi mal daumen) 512; wobei zahl1 eher kleiner ausfällt (meist zweistellig oder gar einstellig).
Wenn ich nun beispielsweise sowas habe wie (5 ^ 47) % 107 bekomme ich falsche Werte, da es beim Potenzieren einen "arithmetic overflow" gibt,
da (5 ^ 47) = 710542735760100185871124267578125 > 32767 .
Integer, long nehme ich sehr ungern, da ich mir mit short einen Performancevorteil erhoffe. Abgesehen davon würde wohl int, long auch nicht ausreichen. Da modulus auch max. 512 brauche ich als Ergebnis auch wirklich nur short.
Gibt es fertige Klassen irgendwo zB java.util.math.* die dieses Handeln können?
Oder muss ich das selbst implementieren?
Ich danke für jegliche Hinweise.. mfg Huck