Zum Inhalt springen

PHP modulo - zu große Zahl?


Empfohlene Beiträge

Ich habe eine 24 stellige Zahl (integer), von der ich modulo (%) 97 rausfinden möchte.

Als Ergebnis der Berchnung kommt immer "0" raus.

(200800000970375700131400 % 97)

Ich glaube es liegt daran, dass die Zahl viel zu groß für PHP ist. Liege ich richtig?

Gibt es eine möglichkeit den Rest (modulo) dieser Zahl in PHP rauszufinden?

MfG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ähmm .. wie speicherst du denn diese Zahl?? Da brauchst du ja ungefähr 78 Bits für. Ich meine, daß PHP maximal +/- 2 Mia., also signed 32bit macht. Und selbst wenn du einen 64-Bit-Prozessor hast, reicht das net :)

Hast du diese Int-Zahl denn mal ausgegeben? Steht dann immer noch 200800000970375700131400 drin?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie du an deiner Ausgabe siehst, ist die Zahl nicht mehr vollständig gespeichert. Also wirst du auch kein genaues Modulo herausbekommen.

Natürlich kannst du dir einen eigenen Algorithmus schreiben, der solche Zahlen im Textformat entgegennimmt und dir das dann ausrechnet.

Übrigens, 200800000970375700131400 modulo 97 ist 10.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier ist der Code:

$ktnr = "200800000970375700131400";

$temp = "";
$teiler = 97;
$i = 0;

while ($i < strlen($ktnr))
{
do
{
$temp.=$ktnr{$i++};
$erg = (int)$temp % $teiler;
} while ( $erg == (int)$temp && $i < strlen($ktnr) );

$temp = $erg;
}

print "Modulo: ".$temp;[/PHP]

ermittelt aber wirklich nur das Modulo. Wenn du jetzt noch das Ganzzahl-Divisionsergebnis dabeihaben willst, mußt du das selber einbauen ;)

HTH

Benjamin

Link zu diesem Kommentar
Auf anderen Seiten teilen

also:

1. der .= Operator hängt dem links davon stehenden String den Ausdruck, der rechts steht, dran.

2. mit den geschweiften Klammern greife ich auf den Buchstaben des Strings zu, und zwar dem, dessen Position in den Klammern angegeben ist. Das ist wie bei C der []-Zugriff auf Zeichenketten (und Arrays im allgemeinen).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...