У меня есть этот метод, который преобразует подписанный или не подписанный 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 волн, один из которых является оригинальным, а другой изменен и рассчитать SNR.