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

Dateigrösse: 1.34 kb

[Anzeige ohne Zeilennummern]


 1 <?php
 2 $sys = isset($_POST['system']) ? $_POST['system'] : false;
 3 $sys = $sys ? $sys : 2;
 4 $sys_js = $sys ? $sys-2 : 0;
 5 $result = '';
 6 
 7 $tpl->setVariable('PHP_SELF', $_SERVER['PHP_SELF'].'?kap=mathematikhelfer&navid=35');
 8 
 9 $tpl->setVariable('sys_js', $sys_js);
10 
11 $zzz = isset($_POST['zzz']) && $_POST['zzz']!='' ? $_POST['zzz'] : false;
12 $zzz = preg_replace('/,/', '.', $zzz);
13 settype($zzz, "double");
14 $zzz = number_format($zzz, 2, '.', '');
15 //settype($zzz, "int");
16 $zzz = intval(round($zzz));
17 
18 $tpl->setVariable('zzz', $zzz);
19 
20 if($_POST['hide']=='ok' && $zzz)
21 {
22     $newSys = powExp($zzz, $sys);
23     
24     $result = '<div id="res"><b>' . $zzz . '</b> im <b>' . $sys . 'er-System</b> = <b>' . $newSys . '</b></div>';
25 }
26 
27 $tpl->setVariable('result', $result);
28 
29 function powExp($zahl, $system)
30 {
31     for($i = 0; $i <= $zahl; $i++)
32     {
33         if($zahl < pow($system, $i))
34         {
35             $exp = ($i-1);
36             return systemChange($exp, $zahl, $system);
37         }
38     }
39 }
40 
41 function systemChange($exp, $zahl, $system)
42 {
43     $result = '';
44     
45     for($i = $exp; $i >= 0; $i--)
46     {
47         if(($zahl / pow($system, $i)) >= 1)
48         {
49             $faktor  = floor($zahl / pow($system, $i));
50             $zahl      = ($zahl - ($faktor * pow($system, $i)));
51             $result .= $faktor . ' ';
52         }
53         else
54         {
55             $zahl     = $zahl;
56             $result .= '0 ';
57         }
58     }
59     
60     return $result;
61 }
62 
63 ?>
64 
65 
66