如何将浮点数组的类型转换更改为一对一的短裤阵列?即。
int bufferSize = 256;
short[] myShort = new short[bufferSize];
float[] myFloat = new float[bufferSize];
for(int i=0;i<bufferSize;i++){
myShort[i] = (short) myFloat[i];
}
我正在寻找更紧凑,更简单的代码。我的处理时间非常短暂(没有双关语)。
答案 0 :(得分:4)
我会保持原样。 Java标准库中没有其他方法可以做到这一点。
答案 1 :(得分:-2)
如果效果最重要,我建议使用JNI(Java Native Interface)。
很快,在C / C ++中编写此函数,并使用本机方法调用它。
从float到short的转换使用2个JVM指令:f2i,i2s,它们将使用许多汇编指令。使用本机方法,您可以使用特殊的cpu指令(SSE?)非常快速地完成此操作。
here讨论浮点数到整数转换。