this 문서에서 도움이 필요합니다. 코드는 다음과 같습니다.C에서 Java로 코드를 번역 할 때 도움이 필요합니다.
float InvSqrt(float x){ // line 0
float xhalf = 0.5f * x;
int i = *(int*)&x; // store floating-point bits in integer
i = 0x5f3759d5 - (i >> 1); // initial guess for Newton's method
x = *(float*)&i; // convert new bits into float
x = x*(1.5f - xhalf*x*x); // One round of Newton's method
return x;
}
... 나는 C 또는 C++인지 여부조차 알 수 없습니다. [좋아, 분명히 C, 고마워.] 누군가 나를 자바로 번역 할 수 있을까? 저를 혼란스럽게하는 것은 2 번과 4 번 라인입니다.
둘 다입니다. 그것은 기술적으로 C (지진 엔진은 C 언어로 작성되었습니다.)이지만 합법적 인 C++이고 C++ 컴파일러에서 컴파일됩니다. –
목표는 역 제곱근을 얻거나 위의 코드가 Java에서 어떻게 보이는지 확인하는 것입니다. – extraneon
@ 마이클 그것은 지진 코드로 보이지 않는, 마법의 상수가 조금 떨어져있는 것 같습니다 :) – extraneon