Typ short: Exponent und Modulo

huckleberry

Bekanntes Mitglied
Hallo Leute,

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
 
G

Gastredner

Gast
Nimm int - intern verwendet die JVM sowieso ints, auch wenn du die Variablen als short deklarierst.
 

Landei

Top Contributor
Das ist zwar alles richtig, trotzdem verstehe ich nicht, wie man da einen Overflow bekommen kann:

Java:
public class ModPow {
    public static short modPow(short base, short exp, short mod) {
        short result = 1;
        for(int e = 0; e < exp; e++) {
            result = (short) (result * base % mod);
        }
        return result;
    }

    public static void main(String[] args) {
        System.out.println(modPow((short)5, (short)47, (short)107));
    }
}
//--> 71
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
F byte, short oder doch int? Java Basics - Anfänger-Themen 6
MiMa Datentyp Short Wert zuweisen über Methode Java Basics - Anfänger-Themen 2
S Performance von byte[], short[], int[]..? Java Basics - Anfänger-Themen 24
B Probleme beim einlesen einer short variablen für einen Array Java Basics - Anfänger-Themen 1
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
H Variablen short <-> byte[] Java Basics - Anfänger-Themen 15
R Erste Schritte Rechnenoperationen mit byte, short und char Java Basics - Anfänger-Themen 8
S Primitiver Datentyp Short , Vorteil/Nachteil Betrachtung Java Basics - Anfänger-Themen 6
U short[] nach byte[] Java Basics - Anfänger-Themen 11
D Von short zu Ascii-Code Java Basics - Anfänger-Themen 2
O 64bit- OS byte, short, int oder long bzw. float oder double? Java Basics - Anfänger-Themen 13
F BufferedImage aus short[][][] Java Basics - Anfänger-Themen 3
E JAVA Typ Short mit String ergänzen Java Basics - Anfänger-Themen 6
S Char Array Werte in short variablen speichern Java Basics - Anfänger-Themen 4
F Short Array zu String Java Basics - Anfänger-Themen 2
H short in unicode umwandeln Java Basics - Anfänger-Themen 5
Z Frage zu "short" Java Basics - Anfänger-Themen 6
M Aus einem Array von "bytes" ein "short" Java Basics - Anfänger-Themen 4
N Problem mit Datentyp short, byte Java Basics - Anfänger-Themen 2
S short in String umwandeln ? Java Basics - Anfänger-Themen 3
U Exponent ausgeben bzw. darstellen Java Basics - Anfänger-Themen 15
C Exponent eingeben Java Basics - Anfänger-Themen 2
E Double ohne Exponent Java Basics - Anfänger-Themen 2
Haubitze_Broese Potenz einer Zahl, der Exponent ist dabei eine beliebige ganze Zahl? Java Basics - Anfänger-Themen 10
C Exponent Java Basics - Anfänger-Themen 2
R Rechenoperationen mit Modulo Java Basics - Anfänger-Themen 2
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
s.marcii Modulo in der Variable einsetzen - ist das möglich? Java Basics - Anfänger-Themen 2
A Modulo operation Java Basics - Anfänger-Themen 5
A Char und modulo Java Basics - Anfänger-Themen 8
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
krgewb Best Practice Modulo Java Basics - Anfänger-Themen 4
L Rekursion Modulo Java Basics - Anfänger-Themen 7
W Input/Output Modulo Wert speichern und ausgeben lassen Java Basics - Anfänger-Themen 3
S Operatoren Modulo programmieren Java Basics - Anfänger-Themen 10
V Andere Schreibweise für % Modulo Java Basics - Anfänger-Themen 9
N Methoden Modulo Operator Java Basics - Anfänger-Themen 1
D Brauche Hilfe bei Modulo (Übungsaufgabe) Java Basics - Anfänger-Themen 14
L Modulo Reste abspeichern und wiedergeben ? Java Basics - Anfänger-Themen 4
Z 10er und 100er Stelle durch Modulo Java Basics - Anfänger-Themen 2
H Buch: Java lernen mit BlueJ Modulo-Operator Java Basics - Anfänger-Themen 16
J for-schleife + modulo Java Basics - Anfänger-Themen 2
E Problem mit modulo Rechnung Java Basics - Anfänger-Themen 8
S Modulo Operator Java Basics - Anfänger-Themen 8
R Merkwürdige Modulo Berechnung Java Basics - Anfänger-Themen 7
E Potenz mit Modulo (über for-Schleife) berechnen Java Basics - Anfänger-Themen 8
J modulo Java Basics - Anfänger-Themen 13
R Ersatz für Modulo Operator Java Basics - Anfänger-Themen 8
W Modulo rechnen Java Basics - Anfänger-Themen 3
calzone Problem einer Gleichung mit Modulo Java Basics - Anfänger-Themen 5
A Problem mit modulo Java Basics - Anfänger-Themen 8
J statt modulo "if-Anweisung" Java Basics - Anfänger-Themen 9
J Modulo berechnen Java Basics - Anfänger-Themen 11
S Modulo Java Basics - Anfänger-Themen 10
D BigInteger potenzieren und anschließend Modulo Java Basics - Anfänger-Themen 7
G SHA (byte array) per modulo hashen Java Basics - Anfänger-Themen 6
G Modulo Java Basics - Anfänger-Themen 4
J Modulo-Operator rechnet falsch Java Basics - Anfänger-Themen 2
Safado modulo rechnen Java Basics - Anfänger-Themen 5
S Modulo-Operator Java Basics - Anfänger-Themen 5
H Modulo rechnen Java Basics - Anfänger-Themen 17
G Modulo Division funzt nicht Java Basics - Anfänger-Themen 3
G BigInteger und Modulo Java Basics - Anfänger-Themen 3
B Modulo (%) und == Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben