Hallo.
Die Ausgangssituation :
Ich habe eine Input Zahl, deren wert von
Ich möchte diesen Inputwert in zwei Zahlen zerlegen die per Modulo Operation (%) wieder den Ausgangswert ergeben.
Dabei nutze ich folgende Funktion :
Wende ich dies bspw auf den Wert
Wenn man nun
Das Problem :
Ist der Input eine große Zahl, bspw
Folglich ergibt die Rechnung auch keinen Sinn mehr und ich bekomme ein falsches Ergebnis zurückgeliefert.
Meine Fragen :
1) Warum werden bei großen Zahlen ungültige Werte zurückgegeben?
2) Welcher Zahlenbereich ist bei meiner Funktion noch legitim, also welche Range als Input resultiert in einem richtigen Output?
3) Wie kann ich diese Funktion umschreiben so das alle Werte von
Mfg,
Rikduo
Die Ausgangssituation :
Ich habe eine Input Zahl, deren wert von
Int32.MinValue
bis Int32.MaxValue
sein kann.Ich möchte diesen Inputwert in zwei Zahlen zerlegen die per Modulo Operation (%) wieder den Ausgangswert ergeben.
Dabei nutze ich folgende Funktion :
Wende ich dies bspw auf den Wert
12345
an bekomme ich bspw 1608184877
und 1608172532
zurück.Wenn man nun
1608184877 % 1608172532
berechnet kommt man auf 12345
. Alles wunderbar.Das Problem :
Ist der Input eine große Zahl, bspw
Int32.MaxValue
, oder etwas darunter, oder aber Int32.MinValue
oder etwas darüber, stimmt die Ausgabe nicht.Folglich ergibt die Rechnung auch keinen Sinn mehr und ich bekomme ein falsches Ergebnis zurückgeliefert.
Meine Fragen :
1) Warum werden bei großen Zahlen ungültige Werte zurückgegeben?
2) Welcher Zahlenbereich ist bei meiner Funktion noch legitim, also welche Range als Input resultiert in einem richtigen Output?
3) Wie kann ich diese Funktion umschreiben so das alle Werte von
Int32.MinValue
bis Int32.MaxValue
als Input gegeben werden können und ein korrekter Output produziert wird?Mfg,
Rikduo
C# Developer
Learning C++
Learning C++