刚接触java不到半个月,最近要编一个读.wav文件的程序,java有个audioinputstream类,他把所有数据读到一个byte[]数组里面。但是后期处理数据的时候需要将每两个byte转换成一个int或者double(因为数据是16位的)。
请问java有这样的函数吗?使用两个byte构造一个int或者double;还是需要自己写这样的函数谢谢了~~~

解决方案 »

  1.   


    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);
    }}呵呵,是这个意思么?
      

  2.   

    去看他们的封装类提供的转换方法啊
    比如int 对应integer 你们没学吗
      

  3.   

    byte转int可以参考1楼的。
    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());
    }
    }
      

  4.   

            int ii=10;
            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);