PHP :: Aufgabe #168

3 Lösungen Lösungen öffentlich

Zahlen umwandeln: Binär zu Dezimal

Anfänger - PHP von Nachbar - 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.

Beispiel:

Binär: 11010
Dezimal: 26

Lösungen:

vote_ok
von miraja (410 Punkte) - 27.09.2017 um 12:47 Uhr
Quellcode ausblenden PHP-Code
<?php

function convertToDecimal($binary_value) {
    $binary_string = strval($binary_value);
    $binary_length = strlen($binary_string);
    $sum = 0;
    //zu der Variable $sum wird für der zugehörige Dezimalwert addiert
    for ($i = 0; $i < $binary_length; $i++) {
         $char = substr($binary_string, $i, 1);
         if ($char === '1') {
             $exponent = $binary_length - 1 - $i;
             $sum += pow(2, $exponent);
         }
    }
    $decimal_value = $sum;
    echo('Der Binärwert ' . $binary_value . ' entspricht dem Dezimalwert ' . $decimal_value);
}

convertToDecimal(1001001);  //Ausgabe: Der Binärwert 1001001 entspricht dem Dezimalwert 73
1 Kommentar
vote_ok
von reso (270 Punkte) - 12.12.2017 um 10:07 Uhr
Quellcode ausblenden PHP-Code
    $bin_zahl = "1000000000000000000";
    $bin_zahl_als_array = str_split($bin_zahl);
    $bin_zahl_als_array = array_reverse($bin_zahl_als_array);
    for($i=0;$i<strlen($bin_zahl);$i++)
    {
       $bin_rechnung = $bin_zahl_als_array[$i]*pow(2,$i);
       $bin_ergebnis += $bin_rechnung; 
    }
    echo "<table border=1>
             <tr>
                 <td>Binärzahl</td><td>$bin_zahl</td>
             </tr>
             <tr>
                 <td>Dezimalzahl</td><td>$bin_ergebnis</td>
             </tr>
             </table>";  

vote_ok
von habablab (270 Punkte) - 22.02.2018 um 18:12 Uhr
Quellcode ausblenden PHP-Code
<?php

$sInput = "11010";
$iOutput = 0;

$aInput = str_split ( $sInput, 1 );

foreach ($aInput as $row)
{
    $iOutput = $iOutput * 2 + $row;
}

echo ($iOutput);