<?php
# Show the steps involved in converting a number
# from any base (like octal
or
hex) to base 10
# See below
for
examples, instructions
and
copyright
function
show_convert_to_base_10 (
$number
,
$base
)
{
if
(
strstr
(
$number
,
'.'
))
{
list (
$integer
,
$decimal
) =
explode
(
'.'
,
$number
);
}
else
{
$integer
=
$number
;
}
print
"<b>Convert the base
$base
number
$number
to a
base 10 number:</b><blockquote>";
print
"Convert the integer component (
$integer
) of the
number:";
$integer
=
strrev
(
$integer
);
$length
=
strlen
(
$integer
);
for
(
$pos
= 0;
$pos
</blockquote>';
if
(isset (
$decimal
))
{
print
"Convert the decimal component (0.
$decimal
)
of the number:<blockquote>";
$decimal
=
'0'
.
$decimal
;
$length
=
strlen
(
$decimal
);
for
(
$pos
= 1;
$pos
<
$length
; ++
$pos
) {
$digit
=
$decimal
[
$pos
];
if
(
eregi
(
'[a-z]'
,
$digit
))
{
$digit_value
=
(ord (
strtolower
(
$digit
))
- ord (
'a'
)) + 10;
$digit
=
"$digit ($digit_value)"
;
}
else
{
$digit_value
=
$digit
;
}
$result
=
$digit_value
* pow (1/
$base
,
$pos
);
print
"Multiply the value of the digit at
position
$pos
by the value of the 1/radix
(
$base
) raised to the power of the position
(
$pos
):<br/>";
print
"
$digit
* 1/
$base
<sup>
$pos
</sup> =
$result
<br/><br/>";
$sums
[] =
$result
;
}
print
'</blockquote>'
;
}
$sums
= implode (
' + '
,
$sums
);
eval
(
"\$base_10_value = $sums;"
);
print
"</blockquote>The value of the base
$base
number
$number
in base 10 is
$base_10_value
. <br/>";
print
"This number is derived from the sum of the values
of the previous operations (
$sums
). <br/> <br/>";
}