2011-10-21 3 views
2

자바 클래스를 AS3으로 포팅하려고합니다. 대부분의 수업에는 비트 수준 프로그래밍이 포함됩니다. 나는 자바로 작성된이 코드를 건너했습니다자바를 AS3에 이식하기

int pixels[] = new int[width * height]; 
short gpixels[] = new short [width * height]; 

을 더에이 같은 일에 걸쳐 실행 코드 :

gpixels[i] 

AS3에서이 두 변수의 상응하는 무엇입니까. 그들은 ByteArrays 또는 정수입니까? 나는 "short"가 16 비트 정수이고 "int"가 32 비트 정수라고 생각했다.

답변

7

ActionScript는 등 ... 짧은, 긴, 플로트, 더블,이없는

당신은, UINT, 또는 번호를 int로 숫자 형식을 매핑합니다.

 
Java type   AS3 type 
----------------- -------------- 
java.lang.Integer int 
java.lang.Short  int 
java.lang.Long  Number 
java.lang.Double  Number 
java.lang.Float  Number 

AS3 int limits: -2147483647 to 2147483647 
AS3 uint limits: 0 to 4294967295 
AS3 Number limits: -1.79769313486231e+308 to 1.79769313486231e+308 

AS3 번호는 IEEE-754 배정 밀도 부동 소수점 수

AS3 바이트와 비트 연산을 가지고있다.

+0

훌륭함, 나는 몰랐다. 일을 더 간단하게 만들지 만, 메모리를 조금 최적화하는 것을 어렵게 만듭니다. 정보 주셔서 감사합니다. – Ewald

+0

이들이 AS3에서 정수라면 두 번째 코드 블록에 표시된 배열과 같은 참조가 무엇입니까? @wvxvw bytearrays에 짧은 방법으로 읽기/쓰기를 사용하는 것에 익숙하지 않은 경우 Vector를 사용하는 것이 가장 좋을까요? – user1006426

+0

var gpixels : Array; 또는 벡터로 입력 : var gpixels : Vector. = 새로운 벡터. (); gpixels [i]; –

1

데이터 유형의 크기를 명시하면 길이가 16 비트이고 int가 32 비트입니다. 나는 누군가가 배열에서 메모리를 저장하려고 시도하는 곳에서 short의 사용을 가장 자주 보았다. 반바지는 결국 정수의 절반 크기이다.

실제 배열의 크기와 해당 위치 (색상 코드 등)에 저장된 값으로 수행하는 작업에 따라 가능한 가장 작은 데이터 유형을 고수 할 수 있습니다.

640 x 480 정수의 배열은 오버 헤드없이 적어도 1,228,800 바이트를 취하고 640 x 480 단락의 배열은 614,400 바이트 만 취합니다.

의심 스럽다면 특히 버퍼가있는 방대한 메모리를 빠르게 소비하는 그래픽 환경에서 가능한 한 적은 메모리를 사용하십시오.