署名付きまたは署名なしを に変換するこのメソッドがあります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;
}
編集:
SNR を計算するために実際に wav ファイルを読み込んでいます。変換から返された値は、0 から 255 の間の値になるはずです。アプリケーションは、元のファイルと変更されたファイルの 2 つの wave ファイルを比較し、SNR を計算する必要があります。