Comunidad de diseño web y desarrollo en internet online

ayuda compañeros, codigo para transformar numeros binarios

Citar            
MensajeEscrito el 30 Jul 2008 05:07 pm
Como lo ven, estoy tratando de transformar numeros binarios en algo entendible.
Se supone que la formula según el array debiese ser asi:
Array: 1, 1, 0, 0, 1
(1*2)^0 + (1*2)^1 + (0*2)^2 + (0*2)^3 + (1*2)^4

Código :

var arr:Array = [1, 1, 0, 0, 1];
for (var i:Number = 0; i<arr.length; i++) {
   var temp:Number = (Math.pow((arr[i]*2), i));
   trace(temp);
}

Bien hasta ahi ningun problema, el trace me lanza:

Código :

1
2
0
0
16


El detalle esta en que no hayo como hacer que me sume tales numeros, puede que el codigo que expuse este mal, pero de verdad me he cabezeado y no logro hacer que se sumen, el trace me sigue lanzando lo mismo, agradezco cualquier aporte realizado se agradece de antemano, saludos a todos!

Por bhzrd_rs4

1 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Jul 2008 05:34 pm
Que tal, estuve examinando tu codigo y me di cuenta que los bits mas significativos tu los estas tomando como menos significativos, nose si estas trabajando littleEndiand o BigEndiand, pero haciendo calculos pude componer tu código.

Código :

var arr:Array = [1, 1, 0, 0, 1];
var temp:Number =0;
for (var i:Number = 0; i<arr.length; i++) {
   temp += (Math.pow((arr[i]*2), arr.length-1-i));
}
trace(temp);

en el pow agregué arr.length-1-i, asi examino desde el primero hasta el último.
Otro camino sería:

Código :

var arr:Array = [1, 1, 0, 0, 1];
var temp:Number = parseInt(arr.join(""),2);
trace(temp);

Esto lo hice en base a 11001 binario es 25 en decimal
Espero que te sirva, saludos!

Por cralph

5 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Jul 2008 05:45 pm
se paso compadre! funciona impeque ahora lo que no entendi fue el arr.length-1-i
='(

no logro entender pero funciona super bien tu codigo, muchas gracias, saludos.

Por pablop_

29 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Jul 2008 05:46 pm
se me olvidaba algo, soy bhzrd_rs4 solo que acabo de recuperar mi cuenta de pablop_ :), saludos.

Por pablop_

29 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 30 Jul 2008 07:36 pm
Bueno pues el arr.length-1-i, es para que vaya del número mas alto a 0, osea que el primer miembro del arreglo va elevado a la potencia mas alta. osea
Array: 1, 1, 0, 0, 1
(1*2)^4 + (1*2)^3 + (0*2)^2 + (0*2)^1 + (1*2)^0
no como habias dicho
Array: 1, 1, 0, 0, 1
(1*2)^0 + (1*2)^1 + (0*2)^2 + (0*2)^3 + (1*2)^4

Por cralph

5 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.