2012-06-19 4 views
0

이 코드는 테이블에 4095 0에서 숫자의 SQRT()를 저장하고 나는 액션 스크립트로 번역하고 싶은 3. 나는 중간을 수행하지만 '는 sizeof'한누군가이 C++을 AS3으로 번역 할 수 있습니까?

unsigned short int_sqrt_x1024[4096]; 

for (int i=0; i<sizeof(int_sqrt_x1024)/sizeof(int_sqrt_x1024[0]); i++) 
int_sqrt_x1024[i] = (int)(sqrtf((float)i + 0.5f) * 1024.0f); 

부품 날 잡았어, 내가 그걸로 뭘 해야할지 실마리가있어!

var int_sqrt_x1024:Vector.<uint> = new Vector.<uint>(4096,true) 
for (var i:int = 0; i < int_sqrt_x1024.length; i++) 
int_sqrt_x1024[i] = Math.sqrt(i + 0.5) * 1024; 
+2

코드의 크기를 무시해야합니다. 처음부터 C++에서 그렇게하는 것은 추한 방법입니다. 루프는 단지 4096 번 반복이므로 sizeof를 i로 대체하십시오. <4096 – TJD

답변

1

당신은 sizeofHERE의 정의를 찾을 수 있습니다

은 그래서 ??? 당신이 생각하는 무엇을 나는이 함께 왔어요 당신의 제안에 따라. 내가 아는 한 AS3에는 유사한 연산자가 없습니다. 나는 문서에서 그와 같은 것을 발견하지 못했고, 검색 결과는 아무것도 밝혀지지 않았습니다. 하나는 고급 데이터 유형이고, 다른 하나는 연산자로

는 사실, 내가 그것을 찾을 수있는 가장 가까운 것은, 내가 이 같은 목적을 달성하지 않을 보장 할 수 전혀 관계가없는 ByteArray이다. 그들의 사용법도 비슷하지 않습니다.

궁금한데,이 코드의 목표는 무엇입니까? 아마도 같은 목적을 달성하는 또 다른 방법이있을 것입니다. (그리고 분명히 코멘트를 읽는 것이 더 좋은 방법입니다.)

EDIT : 아래의 Basic의 설명을 참조하십시오. 비슷한 것이있을 수 있습니다.

+1

흥미롭게도이 페이지는 http://help.adobe.com/en_US/as3/mobile/WS4bebcd66a74275c3-576ba64d124318d7189-7fff.html에 나와 있습니다. 'getSize()'? 동의하지만, 단지'0 <= i <4096' 루프를 수행하는 것이 더 간단 할 것입니다. – Basic

+0

글쎄, 나는 깃털을 달게 될 것입니다 ... – CodeMouse92

1

죄송합니다, 제가 ActionScript를 알 수 없기 때문에 번역을 제공 할 수 없습니다,하지만 난이 너무 당신을 도울 것이라고 생각 :

는 C sizeof - 연산자는 인수의 크기를 바이트 단위로 반환합니다. 이것은 당신이 Actionscript와 같은 "관리되는"언어로 우려해야 할 것이 아닙니다. 어떤 C 코드를 게시했는지 (실제로 C++이 될 수있는 것은 아무것도 없습니다) 루프를 반복하면서 (size_of_the_array_in_bytes/size_of_one_array_element_in_bytes) 번 있습니다. 귀하의 경우, 복잡한 표현은 단순히 4096으로 평가됩니다.

다른 세계에서는 제곱근의 저장을 4096 번 실행하는 루프를 만듭니다.


기초로 사용하는 C 코드는 잘못 작성된 것으로 보입니다. 간단한 조회 테이블을 채우는 데 복잡하고 장황하고 읽을 수없는 방법을 사용하는 이유를 찾지 못하는 것 같습니다. IMO는 다음과 같아야합니다.

#define LOOKUPTABLE_LENGTH 4096 
unsigned short int_sqrt_x1024[LOOKUPTABLE_LENGTH]; 

for (int i=0; i<LOOKUPTABLE_LENGTH; i++) 
    int_sqrt_x1024[i] = (int)(sqrtf((float)i + 0.5f) * 1024.0f); 

훨씬 더 읽기 쉽고, 그렇지 않습니다.

+0

그래, 훨씬 더 합리적이고 너무 나쁘게 보입니다. C/C++를 많이 알지 못합니다. 여기에서 코드를 가져 왔습니다. btw : http://www.geisswerks.com/ryan/FAQS/fast_int_sqrt.html –

+0

흠, 전체 코드가 나에게 훨씬 합리적으로 보입니다. 어쩌면 저자는 정의와 전역 상수를 좋아하지 않을 수도 있습니다. 그들은이 정확한 목적을 위해 사용해야합니다. 그리고 나는 당신의 질문에 대해 논평 할 수 없기 때문에 여기에 넣을 것입니다 : 귀하의 편집에 AS3 번역이 괜찮은 것 같습니다.네가 그걸로 갈 수 있다고 생각해. – Awaki