(What is the fastest way to convert float to int on x86)에서 설명한 내용 (http://www.stereopsis.com/FPU.html)을 읽었습니다. 느린 간단한 캐스트 (아래의 스 니펫 참조)가 ARM 아키텍처에도 적용되는지 아는 사람이 있습니까?ARM (iPhone 3GS/4)의 부동 소수점 변환 및 부동 소수점
inline int Convert(float x)
{
int i = (int) x;
return i;
}
FPU 기사에서 언급 한 몇 가지 트릭을 적용하려면 부동 소수점 연산의 정밀도를 설정해야합니다. ARM에서 어떻게 할 수 있습니까?
ARM 아키텍처에서 가장 빠른 부동 소수점 변환은 무엇입니까?
감사합니다.
실제 코드에서'Convert'와 같은 함수의 이름을 지정하지 마십시오 : P –
@Billy : 당신의 요지를 얻었습니다. 플로어가 더 좋을 것이다 : –
보통 15 일 전의 일에 x86에서 성능 문제가 있었다. 보통 typecasts (int)가 떠돌 때 일어난다. 이것은 fpu 레지스터의 기본 float2int가 플로어 였기 때문이다. 하지의 주위에. 그래서 그 시대의 코드가 빠르기 때문에 특별 어셈블리가 작성되었습니다. 이 시간에서 가져온 모든 코드는 float에서 integer 로의 변환이 floor 연산과 normal round를 사용하기를 기대합니다. 그러나 floor 함수를 사용하여 더블 히트 한 다음 int로 캐스트하거나 int로 캐스트 (가장 가까운 것으로 반올림) 할 수 있습니다. – Medran