2016-03-31 18 views
1

Ich habe gerade die Grundlagen der Umwandlung einer Dezimalzahl in eine Oktalzahl gelernt. Jetzt scheint es umgekehrt zu sein, dass jede Zahl, deren letzte Ziffernendung entweder 8 oder 9 ist, keine Oktalzahl sein kann. Aber muss ich noch etwas überprüfen oder tun, um zu sehen, ob eine Eingangsnummer eine Oktalzahl ist oder nicht (abgesehen davon, ob Sie 8 oder 9 in der letzten Ziffer überprüfen)? - [grundsätzlich, erkundigt, ob ich einen bestimmten Prozess fehle]Oktalzahlen - was ich vermisse, um zu überprüfen, ob die empfangene Eingangsnummer ein Oktalformat hat oder nicht?

Unten ist mein Code in 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>"; 
} 

>

Es ist einfach so passiert, dass bei der Prüfung, ich benutzt hatte? eine Online-Ressource. Als ich eine bestimmte Nummer angegeben hatte, hieß es, das Zahlenformat sei nicht oktal. Aber die Nummer hatte kein 8 oder 9 Ende. Wir freuen uns auf Ihre freundliche Unterstützung.

+0

Ja, 142.876 ... könnten Sie bitte erklären, warum diese Zahl nicht eine Oktalzahl sein kann ... was ich hier zu verstehen, bin fehle. Die letzte Ziffer ist nicht 8 oder 9. Bitte Hilfe! –

Antwort

1

Sie können die integrierte Funktion octdect($number) von PHP verwenden. Ein Beispiel aus http://php.net/manual/en/function.octdec.php, mit der gleichen Frage:

<?php 

function is_octal($x) { 
    return decoct(octdec($x)) == $x; 
} 

echo is_octal(077); // true 
echo is_octal(195); // false 

?> 
+0

Hallo Mark Van Herpen, es ist nur so, dass ich lerne zu programmieren und es vorziehe, keine vorgefertigte Funktion zu verwenden. Ich vermisse etwas irgendwo, ich weiß nicht was es ist .... Könntest du mir bitte helfen mein bestehendes Programm zu verstehen? –