有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字节[]转换为int

我有一个方法,可以将有符号或无符号的byte转换为int,但它不会返回它应该返回的内容。有人能在下面的代码中指出这个问题吗

public int convertByteToInt(byte[] b){          
    int value= 0;
    for(int i=0;i<b.length;i++){                
    int n=(b[i]<0?(int)b[i]+256:(int)b[i])<<(8*i);             
        value+=n;
    }         
    return value;       
}

编辑:

我实际上是在读一个wav文件来计算信噪比。转换返回的值应该在0和255之间。 应用程序应该比较两个波形文件,一个是原始的,另一个是修改的,并计算信噪比


共 (2) 个答案

  1. # 1 楼答案

    你是在练习写代码,还是只是在寻找一种方法?如果是后者,我建议使用ByteBuffer。它有一个getInt方法可以实现这个功能

  2. # 2 楼答案

    public static String bytesToString(byte[] b) {
       try {
          return new String(b, "UTF-8");
       }
    
       catch (UnsupportedEncodingException ex) {
          Logger.getLogger(Util.class.getName()).log(Level.SEVERE, null, ex);
       }
    
       return null;
    }
    
    private int toInt(byte[] b1){
        String s1 = bytesToString(b1);
        int y = Integer.parseInt(s1);
        return y;
    }
    

    这段代码运行得很好,我找到了代码示例,但什么都不管用,我就是这么做的