Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Duda con lectura y escritura de Arrays.

Hola compañeros como les va?, espero me puedan ayudar.
Tengo que leer los bytes de un byte[] SamplePoints (tengo escrito la clase para esto)
a su vez a esto le aplique un corrimiento para leerlo en formato BIG ENDIAN.

acá el código que escribí y despues les explico bien lo que quiero hacer:


private final double CompressValue1 = 4.656612875245797e-10;
public int QR(byte[] SamplePoints,int nbSamples)
{
floatingNB = 0;
for(int l = 0; l < nbSamples; l++)
{
mtrx = new int[(int)(SamplePoints.length)];
for( i = 0, k = 1; i < SamplePoints.length; i +=2, k+= 2)
{
retVal = WaveToDouble(SamplePoints, k , i);
retSave = (retVal * retVal) + floatingNB;
floatingNB = retSave;
}
}
return 0;
}

public double WaveToDouble(byte[] SamplePoints, int k, int i)
{
retVal = (long)(SamplePoints[k] << 8 | SamplePoints[i]) * CompressValue1;
return retVal;
}


Estoy tratando de emular un encodeo especial de un programa, el programa original lo que hace es:
Leer los dos primeros bytes en BIG ENDIAN de SamplePoint[] como un Double y le aplica una multiplicacion por CompressValue1 (que es otro número en formato con coma)... ¿Qué es lo que pasa?, el programa original supongamos los dos primeros bytes del array en vez de leerlos 0x3600 (13824) los lee 0x360000(3538944).. ¿tengo alguna forma de agregar estos bytes que faltan para no perder tantos decimales despues?
Esto por un lado, despues como puedo guardar todo este número que me dio de resultado en un nuevo array?(esto que quiero guardar aca son todos los resultados de la variable floatingNB)..
Les agradeceria su ayuda :)..
Saludos!

febrero 11, 2015 | Registered Commenternewstyl3