Aer/tests/int2alpha_test.aer

27 lines
577 B
Plaintext
Raw Permalink Normal View History

2019-04-08 09:31:58 +02:00
class Program {
private string num2alpha(int $n) {
2019-04-08 09:31:58 +02:00
string $r = '';
for(int $i = 1; $n >= 0 && $i < 10; $i++) {
$r = chr(0x41 + ($n % pow(26, $i) / pow(26, $i - 1))) + $r;
$n -= pow(26, $i);
}
return $r;
}
private int alpha2num(string $a) {
2019-04-08 09:31:58 +02:00
int $r = 0;
int $l = strlen($a);
for(int $i = 0; $i < $l; $i++) {
$r += pow(26, $i) * (ord($a[$l - $i - 1]) - 0x40);
}
return (int) $r - 1;
}
public void main() {
2019-04-08 09:31:58 +02:00
import('math');
var_dump($this->alpha2num("Salut"), $this->num2alpha(1723), $this->num2alpha(9854), $this->alpha2num("Base64"));
}
}