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:
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>
<!--
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>