function toBase(int $n, int $base): string
{
$digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
if ($base < 2 || $base > 36) {
throw new InvalidArgumentException("Base must be between 2 and 36");
}
if ($n === 0) {
return "0";
}
$result = "";
while ($n > 0) {
$remainder = $n % $base;
$result .= $digits[$remainder];
$n = intdiv($n, $base);
}
return strrev($result);
}
try {
$number = 255;
echo $number . " in base 2 = " . toBase($number, 2) . PHP_EOL;
echo $number . " in base 8 = " . toBase($number, 8) . PHP_EOL;
echo $number . " in base 16 = " . toBase($number, 16) . PHP_EOL;
echo $number . " in base 36 = " . toBase($number, 36) . PHP_EOL;
} catch (Exception $e) {
echo "Error: " . $e->getMessage() . PHP_EOL;
}
/*
run:
255 in base 2 = 11111111
255 in base 8 = 377
255 in base 16 = FF
255 in base 36 = 73
*/