bcscale(0);
function EncodeASCIIToBase10($s)
{
$base10 = "0";
for ($i = strlen($s) - 1; $i >= 0; $i--)
{
// ASCII table start from 0 to 255 (256 characters)
$base10 = bcadd($base10, bcmul(ord($s[$i]), bcpow(256, $i)));
}
return $base10;
}
function DecodeBase10ToASCII($base10)
{
$ASCII = "";
do
{
$remainder = bcmod($base10, 256);
$base10 = bcdiv($base10, 256);
$ASCII .= chr($remainder);
} while ($base10 > 0);
return $ASCII;
}
$base10 = EncodeASCIIToBase10("A");
echo "base10 = " . $base10 . "<br />"; // base10 = 65
$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = A
$base10 = EncodeASCIIToBase10("AB");
echo "base10 = " . $base10 . "<br />"; // base10 = 16961
$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = AB
$base10 = EncodeASCIIToBase10("PHP");
echo "base10 = " . $base10 . "<br />"; // base10 = 5261392
$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = PHP
$base10 = EncodeASCIIToBase10("encoding");
echo "base10 = " . $base10 . "<br />"; // base10 = 7453010313431182949
$ASCII = DecodeBase10ToASCII($base10);
echo "ASCII = " . $ASCII . "<br />"; // ASCII = encoding
/*
run:
base10 = 65
ASCII = A
base10 = 16961
ASCII = AB
base10 = 5261392
ASCII = PHP
base10 = 7453010313431182949
ASCII = encoding
*/