Programmiere gerade ne Funktion, welche die Zahlen umcodiert, je der Basis nach, wer in den höheren Stufen Informatik hatte, weiß was ich meine.
Hier das Script:
function changebasis ($data, $basisnow, $basislater) {
$figures = array_merge(range("0","9", range("a", "z");
// Code ändern
// in Dezimal umrechnen
$codelen = strlen($data); // Ermittelt die länge der Zahl
$issue = 0;
for($i=0; $i<$codelen; $i++) {
// Zeichen in Zahl umwandeln
foreach($figures as $key=>$value) {
if(strtoupper($figures[$key]) == strtoupper(substr($data, (-$i-1), 1))) {
$cipher = $key;
}
}
$issue += $cipher * pow($basisnow, $i);
echo $cipher." * ".$basisnow." ^ ".$i." = ".$issue."<br />";
}
$result = $issue;
$issue = "";
while($result > 0) {
echo "(".$result." / ".$basislater." - ((".$result." % ".$basislater." / ".$basislater." R. ".($result % $basislater)." ".$figures[($result % $basislater)]."<br />";
$issue .= strtoupper($figures[($result % $basislater)]);
$result = ($result / $basislater) - (($result % $basislater) / $basislater);
echo $result."<br />";
}
return strrev($issue);
}
/* # */ sind Ausgaben um das Script zu testen
So funktioniert es auch ganz gut, wenn jedoch die ersten beiden Ziffer von links 19 sind, dann kriegt er das nicht mehr hin. Er kommt bei $result von 1 an und wenn er dann dividiert berechnet er nicht 0 Rest 1 sondern 0,1 R 0.... warum macht er das?
Ausserdem sobald die Zahlen über 11 Ziffern lang werden funzt garnichts mehr, hilfe!