이 작업을 올바르게 수행하지 않으면이 방법을 사용하여 바이트 배열을 다음과 같이 부동 배열로 변환합니다. link :원시 바이트 데이터를 float []로 변환하고 값은 -1과 1 사이 여야합니다.
는public static float[] ConvertByteToFloat(byte[] array) {
float[] floatArr = new float[array.Length/4];
for (int i = 0; i < floatArr.Length; i++) {
if (BitConverter.IsLittleEndian) {
Array.Reverse(array, i * 4, 4);
}
floatArr[i] = BitConverter.ToSingle(array, i * 4);
}
return floatArr;
}
입력 어레이 (NO 헤더) 파 원 데이터를 포함하는 배열
문제 난 (변환 후) 얻고이다 같은 값된다
012,351 6,-9.66012E + 24 1963.15576, -5.11384777E-36, 07 -1.19718621E
가 어떻게 float 배열이 배열 변환 할 수 있고 그 값은 -1.0 1.0 사이되어야 하는가?
편집 :
내 입력 배열은 다음과 같이 시작합니다
byte[] {
232,
255,
235,
255,
232,
255,
235,
255,
232,
255,
235,
255,
232,
255,
235,
255,
...
}
시도'BitConverter.IsLittleEndian'을 제거하고 우리가 무시한다면 (이 코드는 올바른 것 같다 ... 이제 어떻게되는지 내가 NaN을 – xanatos
하자 가능한 'IsLittleEndian' 문제) ... 예를 들어 시퀀스의 일부 바이트 (약 16 바이트 정도면 충분합니다)를 말할 수 있습니다 ... 4 바이트 부동 소수점 값이고 8 바이트가 아닌 것은 확실합니까? –
을 얻고있다 – xanatos