你好 Monty,
Aufgabe ist es im Zahlenbereich von 1 bis 1200 bis zu 600 Zahlen in einem
Code bestehend aus Buchstaben(A-Z) und Zahlen (0-9) zu Speichern, und
wieder rückrechnen zu können.
Du möchtest also Dezimal-Ziffern ins 36er-System und wieder zurückwandeln
können. Dann mach das doch. Beispiel-Code für eine Von-Hand-Lösung in Perl:
sub to_dec36 {
my $num = shift;
my @chars = (0..9,'A'..'Z');
my $a = 1;
my $result = '';
$a *= 36 while $num >= $a;
while($a != 1) {
$a /= 36;
$b = $num / $a;
$num %= $a;
$result .= $chars[$b];
}
return $result;
}
sub from_dec36 {
my $num = shift;
my @nums = split // => $num;
my @chars = (0..9,'A'..'Z');
my $i3 = length($num) - 1;
my $i2;
my $base;
my $result = 0;
for(my $i=0;$i<length($num);$i++) {
$base = 36 ** ($i3 - $i);
for($i2=0;$i2<@chars;$i2++) {
last if $chars[$i2] eq $nums[$i];
}
$base = $base * $i2;
$result = $result + $base;
}
return $result;
}
my $num = 20;
my $num36 = to_dec36($num);
my $num10 = from_dec36($num36);
print "num: $num, num36: $num36, num10: $num10\n";
Ich habe absichtlich auf Perl-Rafinessen verzichtet, damit du es 1:1 in
PHP, C oder sonsteine Sprache übertragen kannst.
再见,
克里斯蒂安
--
Auf der ganzen Welt gibt es nichts Weicheres und Schwaecheres als Wasser. Doch in der Art, wie es dem Harten zusetzt, kommt nichts ihm gleich.
http://wwwtech.de/
Auf der ganzen Welt gibt es nichts Weicheres und Schwaecheres als Wasser. Doch in der Art, wie es dem Harten zusetzt, kommt nichts ihm gleich.
http://wwwtech.de/