Talstelsels

Status
Niet open voor verdere reacties.

GMJelle

Gebruiker
Lid geworden
13 jan 2013
Berichten
14
Hallo allemaal,

Ik zit met een probleempje waar ik niet uit kom.
Ik ben aan het proberen een talstelsel om te rekenen naar een ander talstelsel.
Dit heb ik nu.

Code:
function talstelsels(){
var getal1 = document.getElementById('getal').value;
var tal1 = document.getElementById('tal').value;
var antwoord = document.getElementById('antwoord').innerHTML = convert(getal1,tal1);
}

function convert(invoer,tal){
if (invoer == "A" || "B" || "C" || "D" || "E" || "F"){
invoer = invoer.charCodeAt(invoer-55);
}
count = invoer.length;
macht = Math.pow(tal,count);
g1 = count-1;
g2 = Math.pow(tal,g1);
num1 = invoer;
num2 = eval(num1.charAt(0)) * g2;
for (i = 1; i <= g1; i++)
{
g2 = g2 / tal;
num2 = num2 + (eval(num1.charAt(i)) * g2);
}



var tal2 = document.getElementById('tal2').value;
dg = num2;
g3 = "";
var array = new Array();
for (var macht2 = 0; g3<=dg; macht2++){
	g3 = Math.pow(tal2,macht2);
	array[macht2] = g3;
	}array.pop();
			
			var factor = "";
			var antwoord = "";
			var lengte = "";
			for (i = 1; i != 0; i++){
				lengte = array.length-i;
				factor = Math.floor(dg/array[lengte]);
				dg = dg - factor * array[lengte];
				if (lengte == 0){
				i = -1;
				}	
			
			if (factor >= 10){
				factor = String.fromCharCode(factor + 55);
				}
				antwoord = antwoord + factor;
				}
		return antwoord;	
	}

Mijn html:

HTML:
<!DOCTYPE>
<html>
	
	<head>
		<script type="text/javascript" src="Opdracht6.js"></script>
	</head>
<form>
	Talstelsel <input type="text" id="tal"/><br>
	Getal <input type="text" id="getal"/><br>
	Naar talstelsel <input type="text" id="tal2"><br><br>
	<input type="button" value="Calculate" onclick="talstelsels();">
	<span id="antwoord"/>
	<span id="decimal"/>
	</form>
	</body>
</html>

Alleen ik zou graag willen zeggen dat als je bijv. A invoert dat dat 10 is B 11 C 12 enz.
Nou doe ik dat met de functie charCodeAt in een if statement wat wel lukt alleen hij geeft een error dat charAt niet werkt.

Kan iemand mij misschien op weg helpen?

bedankt alvast.
 
Laatst bewerkt:
Je probleem zit hier in volgens mij:
[js]if (invoer == "A" || "B" || "C" || "D" || "E" || "F"){[/js]
Je zult de check moeten herhalen
[js]
if(
invoer == "A" ||
invoer == "B" ||
invoer == "C" ||
invoer == "D" ||
invoer == "E" ||
invoer == "F"
){[/js]

Daarnaast, wat als de invoer een "G" of "1" is?
Dan gaat ie nu gewoon door naar
[js]count = invoer.length;[/js]
is dat de bedoeling?
 
Laatst bewerkt:
Ik hou het tot 16 tallig, dus tot F.
als de invoer een getal is dan gaat hij door inderdaad
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan