JavaScripts -> Mathematik -> Umrechnen von Zahlen verschiedener Systeme

Dieses Script rechnet eine Zahl in einem Beliebigen Zahlensystem der Basis 2 - 36 in alle anderen Zahlensysteme dieser Basen um.

Kompatibilität getestet:
Beispiel Anzeigen >>

Script-Code

<script type="text/javascript">
<!--

var ziffern=new Array("0","1","2","3","4","5","6","7","8","9","A","B",
                      "C","D","E","F","G","H","I","J","K","L","M","N",
                      "O","P","Q","R","S","T","U","V","W","X","Y","Z");


function frombase(zahl,basis) {
  var i,val=0,pos=0,num=0;
  zahl=zahl.toUpperCase();
  for(i=zahl.length-1;i>=0;i--) {
    if(zahl.charCodeAt(i)>64) {
      val=zahl.charCodeAt(i)-55;
    }
    else val=zahl.charCodeAt(i)-48;
    if(val>=basis || val<0) {
      return -1;
    }
    num+=val*Math.pow(parseInt(basis),pos);
    pos++;
  }
  return num;
}

function tobase(zahl,basis) {
  var r,rval="";
  do {
    r=zahl % basis;
    zahl=(zahl-r)/basis;
    rval=ziffern[r]+rval;
  } while(zahl>0);
  return rval;
}

function calculate(source,v) {
  var zahl,i;
  zahl=frombase(v,source);
  if(zahl<0)return;
  else {
    for(i=2;i<37;i++) {
      if(i!=source)document.getElementById("basis"+i).value=tobase(zahl,i);
    }
  }
}

document.writeln('<form name="calc" style="border-collapse:collapse">');
document.writeln('<table style="width:250px">');
document.writeln("<tr><th>Basis</th><th>Zahl</th></tr>");
for(i=2;i<37;i++) {
  document.writeln('<tr><td style="padding:1px">'+i+'</td><td style="padding:0px">');
  document.writeln('<input type="text" name="basis'+i+'" id="basis'+i+'" value="'+i+'" onKeyup="calculate('+i+',this.value)" onChange="calculate('+i+',this.value)" style="width:100%">');
  document.writeln("</td></tr>");
}
document.writeln("</table>");
document.writeln("</form>");


//-->
</script>