이 질문은 전에 질문했을 수도 있지만 정확한 일치를 찾을 수 없어서 시도해 볼 것입니다.float 배열을 바이트 배열로 효율적으로 캐스팅
는 내가 배열의 각 float
의 마지막 8 비트를 유지하려는 의미 하나 float
이 (등 정보의 손실) 캐스팅 될 방법으로 float[]
byte[]
A를 캐스팅하고 싶다. ByteBuffer와 관련된 코드를 발견했지만이 방법은 각 float의 모든 32 비트를 원하는 출력이 아닌 4 바이트 (각각 8 비트)로 변환했습니다 (누군가가 관심이있는 경우 링크는 http://www.javalobby.org/java/forums/t18962.html입니다)
이 주조를위한 코드 그래서 난 그냥 고전 for
루프를 사용 찾을 : 내가 인식하지 오전 같은 결과를 달성하기 위해보다 효율적인 방법이 있는지
public static byte[] float2ByteArray(float floatArray[]) {
byte[] byteArray = new byte[floatArray.length];
for(int i = 0; i < floatArray.length; i++) {
byteArray[i] = (byte) floatArray[i];
}
return byteArray;
}
내 질문은?
이 특정 루프에 성능 문제가 있습니까? – Kayaman
> "하나의 플로트가 캐스팅 (정보 손실 등)되어 배열의 각 플로트의 마지막 8 비트 만 유지하려고합니다." 이것은 float -> byte 변환이 Java에서 작동하는 방식이 아닙니다. –
배열은 얼마나 걸립니까? – StephaneM