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.
Vielen Dank für die Mühe die du dir gemacht hast!
Wenn ich dich richtig verstanden habe, dann werden jetzt Dezimal-Ziffern ins 36er-System (und umgekehrt) umgewandelt.
Das heißt, dass ich anstelle von "1295" "ZZ" schreibe oder an Stelle von "36" "10" usw. damit würde ich ab den dreistelligen Zahlen nur zwei Stellen schreiben müssen.
Wenn ich jetzt aber 3,5,14,15 darstellen möchte, dann muss ich trotzdem 3,5,E,F schreiben.
Ich möchte aber so wenig wie möglich schreiben und so viele Zahlen wie möglich damit darstellen.
1,3,4,5,8,11,14,15,17,20 wären nach meinem System dann 4DGO nur vier anstelle von zehn Zeichen.
So kann ich 600 Zahlen mit 120Zeichen darstellen, das ist mir aber noch zu viel.
Die Zahlen müssen quasi verschlüsselt werden.
Hast du noch eine Idee wie ich viele Zahlen mit wenig Zeichen darstellen kann?
Danke nochmal,
Monty