刚接触java不到半个月,最近要编一个读.wav文件的程序,java有个audioinputstream类,他把所有数据读到一个byte[]数组里面。但是后期处理数据的时候需要将每两个byte转换成一个int或者double(因为数据是16位的)。
请问java有这样的函数吗?使用两个byte构造一个int或者double;还是需要自己写这样的函数谢谢了~~~
请问java有这样的函数吗?使用两个byte构造一个int或者double;还是需要自己写这样的函数谢谢了~~~
调试欢乐多
public class apptest1 { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte a= 100;
int b= a+a*255;
System.out.println(b);
}}呵呵,是这个意思么?
比如int 对应integer 你们没学吗
double是8byte,2byte如何代表的1double需要搞清机制,如果确认和java里double格式一样,且肯定前6位为0,可以这样:
import java.nio.ByteBuffer;public class Test {
public static void main(String[] args) {
byte b1 = (byte) 2;
byte b2 = (byte) 100;
//two byte to one int
ByteBuffer bf = ByteBuffer.wrap(new byte[] { 0, 0, b1, b2 });
System.out.println(bf.getInt());
//two byte to one double
bf = ByteBuffer.wrap(new byte[] { 0, 0, 0, 0, 0, 0, b1, b2 });
System.out.println(bf.getDouble());
//two byte to one float
bf = ByteBuffer.wrap(new byte[] { 0, 0, b1, b2 });
System.out.println(bf.getFloat());
}
}
double dd;
byte bb;
dd=Double.valueOf(Integer.toString(ii));
bb=Byte.valueOf(Integer.toString(ii));
System.out.println("ii:"+ii+"dd:"+dd+"bb:"+bb);