binair naar decimaal

Status
Niet open voor verdere reacties.

GMJelle

Gebruiker
Lid geworden
13 jan 2013
Berichten
14
hallo allemaal,

Ik heb net een script gemaakt dat van binair naar decimaal rekent:

Code:
function convert(){
currnum = 256;
var invoer = window.prompt("Voer een decimaal getal in (9bit):","");

num2 = eval(invoer.charAt(0)) * currnum;
for (i = 1; i <= 8; i++)
{
currnum = currnum / 2;
num2 = num2 + (eval(invoer.charAt(i)) * currnum);
}
document.getElementById('binair').innerHTML = num2;
}

In deze code kan je alleen van binair naar decimaal rekenen in 9 bits.
Nu zou ik het graag ook in bijv. 6, 7 of 8 bits willen doen, is daar een manier voor?

Bedankt alvast.
 
Ik denk dat je niet op de juiste manier een binair getal omzet.
Probeer het eens op deze manier:

Code:
lengte = lengte van invoer
teller = 1
totaal = 0
for(i = lengte ; i > 0 ; i:=i-1){
if(invoer.charat(i)==1) totaal+=2^teller
teller++
}

Ik heb het een beetje simpel opgeschreven, moet je het even omzetten naar javascript
 
Ik heb nu dit:
function convert(){
currnum = 256;
var invoer = window.prompt("Voer een decimaal getal in:","");
var teller = 1
var totaal = 0
for(i = lengte ; i > 0 ; i=i-1){
if(invoer.charat(i)==1) totaal+=2^teller
teller++
}
document.getElementById('binair').innerHTML = totaal;
}

Maar wat moet ik precies met de lengte doen?
 
Laatst bewerkt:
lengte is aantal characters van de invoer

maar, als je van binair naar decimaal converteert dan moet je toch om een binair getal vragen. Nu vraag je een decimaal getal?

Ron
 
Ja, had ik even verkeerd ingetypt moet binair zijn: "Voer een binair getal in (9bit):","");
 
Laatst bewerkt:
Ik heb nog en beetje zitten zoeken op internet en ik denk dat ik het opgelost heb:


function convert(){
currnum = 256;
var invoer = window.prompt("Voer een binair getal in:","");
count = invoer.length;
macht = Math.pow(2,count);
g1 = count-1;
currnum = Math.pow(2,g1);

num2 = eval(invoer.charAt(1)) * currnum;
for (i = 1; i <= g1; i++)
{
currnum = currnum / 2;
num2 = num2 + (eval(invoer.charAt(i)) * currnum);
}
document.getElementById('binair').innerHTML = num2;
}
 
Ja, dat kan. Maar je gebruikt o.a. eval wat echt verbodig is. Daarnaast: het kan met 1 regel code! :)

[js]var binair = "101010"; // 101010 = 42 in dec
// of gebruik een promt() zoals in je voorbeeld

var decimaal = parseInt(binair, 2); // De magie! Whoooo!

// decimaal is nu '42'[/js]

De parseInt functie eet eerst een getal (als string) en zet dat om naar een nummer. De tweede parameter geeft de radix aan (e.g. is het decimaal, binair, octaal etc.).
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan