Quelltext der Datei: http://www.michaelster.ch/lernen/zahlensystem_converter.php

Dateigrösse: 1.34 kb

[Anzeige mit Zeilennummern]


<?php
$sys = isset($_POST['system']) ? $_POST['system'] : false;
$sys = $sys ? $sys : 2;
$sys_js = $sys ? $sys-2 : 0;
$result = '';

$tpl->setVariable('PHP_SELF', $_SERVER['PHP_SELF'].'?kap=mathematikhelfer&navid=35');

$tpl->setVariable('sys_js', $sys_js);

$zzz = isset($_POST['zzz']) && $_POST['zzz']!='' ? $_POST['zzz'] : false;
$zzz = preg_replace('/,/', '.', $zzz);
settype($zzz, "double");
$zzz = number_format($zzz, 2, '.', '');
//settype($zzz, "int");
$zzz = intval(round($zzz));

$tpl->setVariable('zzz', $zzz);

if($_POST['hide']=='ok' && $zzz)
{
    $newSys = powExp($zzz, $sys);
    
    $result = '<div id="res"><b>' . $zzz . '</b> im <b>' . $sys . 'er-System</b> = <b>' . $newSys . '</b></div>';
}

$tpl->setVariable('result', $result);

function powExp($zahl, $system)
{
    for($i = 0; $i <= $zahl; $i++)
    {
        if($zahl < pow($system, $i))
        {
            $exp = ($i-1);
            return systemChange($exp, $zahl, $system);
        }
    }
}

function systemChange($exp, $zahl, $system)
{
    $result = '';
    
    for($i = $exp; $i >= 0; $i--)
    {
        if(($zahl / pow($system, $i)) >= 1)
        {
            $faktor  = floor($zahl / pow($system, $i));
            $zahl      = ($zahl - ($faktor * pow($system, $i)));
            $result .= $faktor . ' ';
        }
        else
        {
            $zahl     = $zahl;
            $result .= '0 ';
        }
    }
    
    return $result;
}

?>