#!/usr/local/bin/perl -w # A Perl based base 26 $a='a'; for $i (1..1000000) { $b = decode26($a); $c = code26($i); # if ($a ne $c){ print "$i $a $b $c\n"; # } $a++; } sub code26{ my $coci = shift; my $code = ""; my $rest = 0; while ($coci>26){ $rest = $coci % 26; if ($rest==0) { $rest=26; $coci--; } $code .= chr(ord("a")+$rest-1); $coci = int $coci /26; } $code .= chr(ord("a")+$coci-1); return reverse $code; } sub decode26{ my $a = shift; my @b = reverse split //, $a; my $count=0; my $sum=0; for my $c (@b){ $sum += (ord($c)-ord("a")+1)*(26**$count); $count++; } return $sum; } __END__