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之间。 应用程序应该比较两个波形文件,一个是原始的,另一个是修改的,并计算信噪比
# 1 楼答案
你是在练习写代码,还是只是在寻找一种方法?如果是后者,我建议使用ByteBuffer。它有一个getInt方法可以实现这个功能
# 2 楼答案
这段代码运行得很好,我找到了代码示例,但什么都不管用,我就是这么做的