Только что изучил основы преобразования десятичного числа в восьмеричное число. Теперь, наоборот, у меня, похоже, есть тот факт, что любое число, последняя цифра которого оканчивается на 8 или 9, не может быть восьмеричным числом.
Но есть ли что-нибудь еще, что мне нужно было бы проверить или сделать, чтобы увидеть, является ли входное число восьмеричным или нет (кроме проверки 8 или 9 в последней цифре)? — [в основном, спрашивая, если я пропускаю определенный процесс]
Ниже мой код в PHP:
<?php
$iOctal = 1423;
echo "What is the Decimal Value of the octal number $iOctal?"."<br/>";
$rg_Decimal = str_split($iOctal);
//print_r($rg_Decimal);
if (end($rg_Decimal) == 8 || end($rg_Decimal) == 9){
echo "<b>Error:- </b>Unable to process your request as the input number format is not of the Octal Number Format. Please try again...";
}
if ($iOctal < 8 && $iOctal >= 0){
echo "The Decimal Value of the octal number $iOctal is $iOctal.";
}
else{
$iE = count($rg_Decimal);
--$iE;
$iDecimal = 0;
for ($iA = 0; $iA < sizeof($rg_Decimal); ++$iA){
$iDecimal += $rg_Decimal[$iA] * bcpow(8,$iE);
--$iE;
}
echo "The Decimal Value of the octal number $iOctal is <b>$iDecimal</b>";
}
?>
Так уж сложилось, что во время тестирования я использовал онлайн-ресурс. Когда я дал конкретное число, он сказал, что числовой формат не является восьмеричным. Но у числа не было окончания 8 или 9.
Ждем вашей поддержки.
Вы можете использовать встроенную функцию octdect($number)
с php.
Пример из http://php.net/manual/en/function.octdec.php , с тем же вопросом:
<?php
function is_octal($x) {
return decoct(octdec($x)) == $x;
}
echo is_octal(077); // true
echo is_octal(195); // false
?>
Других решений пока нет …