diff --git a/step2/fx_s3132_longlong.h b/step2/fx_s3132_longlong.h index 180e407b5e2ef09eba6ba917522d604897e6421d..b1fa41866286a203c83f948e2cc82e2b449020f5 100644 --- a/step2/fx_s3132_longlong.h +++ b/step2/fx_s3132_longlong.h @@ -23,12 +23,12 @@ typedef long long fx_s3132; //아래 3개는 곱셈 관련 코드입니다. -#define fx32_mul(fa, fb) (fixed32)((fa * fb) >> FX32_QNUM ) //fa와 fb를 곱해서 2^32로 나누어 주는 코드입니다. 이게 가장 기본 코드입니다. -#define fx32_mul1(fa, fb) ((fixed32)(((fa>>16) * fb)>>16)) //위와 똑같이 fa*fb>>32랑 같은 의미인대, 먼저 fa/2^16와 fb를 곱해주고 나머지 2^16을 나눠주는 작업입니다. -#define fx32_mul2(fa, fb) ((fixed32)(((fa>>8)*(fb>>8))>>16)) //위와 똑같이 fa*fb>>32랑 같은 의미인대, 먼저 fa/2^8, fb/2^8을 곱해주고 나머지 2^16을 나눠주는 작업입니다. +#define fx32_mul(fa, fb) ((fa * fb) >> FX32_QNUM ) //fa와 fb를 곱해서 2^32로 나누어 주는 코드입니다. 이게 가장 기본 코드입니다. +#define fx32_mul1(fa, fb) ((((fa>>16) * fb)>>16)) //위와 똑같이 fa*fb>>32랑 같은 의미인대, 먼저 fa/2^16와 fb를 곱해주고 나머지 2^16을 나눠주는 작업입니다. +#define fx32_mul2(fa, fb) ((((fa>>8)*(fb>>8))>>16)) //위와 똑같이 fa*fb>>32랑 같은 의미인대, 먼저 fa/2^8, fb/2^8을 곱해주고 나머지 2^16을 나눠주는 작업입니다. //아래 3개는 나눗셈 관련 코드입니다. -#define fx32_div(fa, fb) (fixed32)( (((fixed64)(fa) << FX32_QNUM) /(fb))) //fa에 2^32을 곱하고 fb를 나눠주는 코드입니다. 이게 가장 기본 코드입니다. +#define fx32_div(fa, fb) ( (((fixed64)(fa) << FX32_QNUM) /(fb))) //fa에 2^32을 곱하고 fb를 나눠주는 코드입니다. 이게 가장 기본 코드입니다. #define fx32_div1(fa, fb) ((((fa)<<16)/(fb))<<16) //위와 똑같이 (fa<<32)/fb랑 같은 의미인대, 먼저 fa에 2^16을 곱한 값을 fb를 나누고, 그 다음에 나머지 2^16을 곱해주는 작업입니다. #define fx32_div2(fa, fb) ((((fa)<<24)/(fb))<<8) //위와 똑같이 (fa<<32)/fb랑 같은 의미인대, 먼저 fa에 2^24을 곱한 값을 fb를 나누고, 그 다음에 나머지 2^8을 곱해주는 작업입니다. //((fa)/((fb)>>FX32_QNUM))