我有这种方法可以将有符号或无符号转换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 文件以计算 SNR。转换的返回值应该给出介于 0 和 255 之间的值。应用程序应该比较 2 个 wave 文件,一个是原始文件,另一个是修改并计算 SNR。