📄 datos.java
字号:
/*
* Datos.java
*/
package rah;
import java.awt.*;
import java.io.*;
import java.io.IOException;
import java.util.*;
public class Datos {
byte[] bits ;
boolean formato; // para el formato bigEndian y littleEndian
double mayor, menor;
public Datos(int tamano, boolean formato)
{
bits = new byte[tamano];
this.formato=formato;
mayor=0;
menor=0;
}
public void llenarByte(byte[] bits)
{
this.bits = bits;
}
/* ejemplo bits[2]=2 (00000010) bits[3]=3 (00000011)
se aplica bits[2]<<8 o sea 10 00000000 , luego 11111111(0x000000FF) & bits[3]|bits[2]
en total da 10 00000011 que es el numero 515 , este es un short de 16 bits , han entrado
dos bytes en uno (short[i]=contacenar byte[i]+byte[i+1])
los valores negativos estan en complemento a 2
*/
public double[] convertirByteADouble()
{
double[] arrayDouble = new double[bits.length/2];
if (formato==true)
{
int temp = 0x00000000;
for (int i = 0, j = 0; j < arrayDouble.length ; j++, temp = 0x00000000)
{
temp=(int)bits[i++]<<8;//System.out.println("temp = "+ temp);
temp |= (int) (0x000000FF & bits[i++]);
arrayDouble[j]=(double)temp;
}
return arrayDouble;
}
if(formato==false)
{ // si el formato es littleEndian
int temp = 0x00000000;
for (int i = 0, j = 0; j < arrayDouble.length ; j++, temp = 0x00000000)
{
temp=(int)bits[i+1]<<8;//System.out.println("temp = "+ temp);
temp |= (int) (0x000000FF & bits[(i)]);
i=i+2;
arrayDouble[j]=(double)temp;
//calcular mayor y menor esto me servira para establecer
//los parametros en el eje y para la grafica
if(mayor<arrayDouble[j])
{
mayor=arrayDouble[j];
}
if(menor>arrayDouble[j])
{
menor=arrayDouble[j];
}
}
return arrayDouble;
}
else
{
System.out.println("orden de Bytes desconocido o no soportado");
}
return arrayDouble;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -