diff --git a/README.md b/README.md
index c34671ed64ee40aea9e3cf74a35caf47b7c4bc89..2adb5f5908a7219baf89291c5e9a5dd6212f5fdd 100644
--- a/README.md
+++ b/README.md
@@ -78,6 +78,141 @@ object 파일들을 삭제한다
 
 자동 의존 관계 생성으로 타겟이 어느파일에 의존하고 있는지 표시해주는 역할을 한다.
 
+
+
+# Project step2 - long long
+
+### List of functions
+
+| Datatype | Name          | Parameters  | Description                                                  |
+| -------- | ------------- | ----------- | ------------------------------------------------------------ |
+| fx_s2308 | fx_s2308_sind | fx_s2308 fa | fx_s2308로 표현된 fa의 값을 sinTable 을 이용해 sin값을 반환한다. |
+
+### List of macros
+
+| Macro                         | Description                                                  |
+| ----------------------------- | ------------------------------------------------------------ |
+| FX32_90, FX_32_180, FX_32_360 | 90, 180, 360˙ 를 고정소수점 변환한 값                        |
+| FX_S2308_L_MUL(a,b)           | a와 b를 곱하고 8비트 오른쪽 쉬프트 연산을 한후 long long 형변환 int형변환 시킨 매크로 |
+| FX_S2308_L_MUL2(a,b)          | a와 b를 각각 4비트 오른쪽 쉬프트 연산을 한 후 곱셈을 수행하고 long long 형변 int형변환 시킨 매크로 |
+| FX_S2308_L_MUL3(a,b)          | a와 b를 곱하고 8비트 오른쪽 쉬프트연산을 한 후 int 형변환 시킨 매크로 |
+| FX_S2308_L_MUL4(a,b)          | a와 b를 각각 4비트 오른쪽 쉬프트 연산을 한 후 곱셈을 수행하고 int 형변환 시킨 매크로 |
+| FX_S2308_L_DIV1(a,b)          | a를 b로 나눈후 8비트 왼쪽 쉬프트 연산을 한 후 long long 형변환 int 형변환 시킨 매크로 |
+| FX_S2308_L_DIV2(a,b)          | a를 비트 왼쪽 쉬프트 연산을 한 후 b로 나눈 후 int 형변환 시킨 매크로 |
+
+## 성능비교
+
+### 정확도
+
+![mul1](./image/mul1.png)
+
+
+
+![mul2](./image/mul2.png)
+
+![mul3](./image/mul3.png)
+
+위의 test결과로 다음과 같은 매크로들의 장단점을 알 수 있다.
+
+- MUL1 : 가장 적은 오차를 가진다. 곱셈 결과를 long long 으로 캐스팅하기때문에 여유 비트수가 많음  
+- MUL2 :  곱하기 전 쉬프트연산으로 인해 곱셈 전에 이미 데이터가 손실이 될 수 있음
+- MUL3 : long long 으로 캐스팅하지 않았기 때문에 데이터의 손실이 많이 발생함(overflow), 큰 수 계산에 부적합하지만 작은수에서는 오히려 오차가 줄어듬
+- MUL4 : long long 으로 캐스팅하지 않았기 때문에 데이터의 손실이 많이 발생함(overflow) 큰 수 계산에 부적합
+
+![div1](./image/div1.png)
+
+![div2](./image/div2.png)
+
+![div3](./image/div3.png)
+
+위의 test결과로 다음과 같은 매크로들의 장단점을 알 수 있다.
+
+- DIV1 : 분모가 1보다 작을때 DIV2보다 오차가 적음, 분모가 0.0X일 경우 매우 큰 오차발생
+- DIV2 : 분모가 1보다 클때 DIV1 보다 오차가 적음, 분모가 0.0X일 경우 매우 큰 오차발생, 연산 전 쉬프트 연산으로 인해 분자의 입력이 6자리 실수 이상부터 데이터의 손실이 크게 발생할 수 있다.
+
+![sind](./image/sind.png)
+
+TABLE을 이용한 연산으로 원하는 결과값을 얻을 수 있다.
+
+### 속도
+
+### mul
+
+#### 32bit
+
+![32mul1](./image/32mul1.png)
+
+![32mul2](./image/32mul2.png)
+
+#### 64bit	
+
+![64mul1](./image/64mul1.png)
+
+![64mul2](./image/64mul2.png)
+
+- 두 환경 모두 double_mul의 성능이 안좋음을 확인할 수 있다 -> long long 의 연산이 double 연산보다 빠름을 알 수 있다.
+- longlong_mul 1~4의 결과를 통해 산술연산자가 쉬프트연산자가 느림을 알 수 있고 캐스팅도 성능에 영향을 미치는 것을 알 수 있다. (컴퓨터는 곱셈을 덧셈으로 실행하기에 <<3과 *8은 같은의미지만 속도차이가 난다)
+- TEST_NUM은 테스트 횟수로 1000000 일 경우 성능차이를 뚜렷하게 볼 수 있다. 이보다 커질경우 double과 long long의 성능차이가 줄어들게 되며 이보다 작아질 경우 성능이 낮아져 정상적인 테스트가 불가해진다.
+- 32bit보다 64bit에서 모든 연산이 같거나 빨라짐을 알 수 있다. 무조건 64bit가 빠르지 않은 이유는 64bit는 32bit로 표현하지 못하는 숫자를 다루기 위함이고 32자리로 표현하는 계산방식에 한계가 있기 때문이다. 그렇기에 큰 숫자를 표현하지 않는 상황에서는 32bit 환경도 무리없이 사용할 수 있다.
+
+
+
+### div
+
+#### 32bit
+
+![32div1](./image/32div1.png)
+
+![32div2](./image/32div2.png)
+
+#### 64bit
+
+![64div1](./image/64div1.png)
+
+![64div2](./image/64div2.png)
+
+- 64, 32비트 환경 모두 shift연산을 먼저 적용시키는것 보다 캐스팅후 shift 연산이 빠른 것을 알 수 있음
+- 64, 32비트 환경 모두 double형 연산이 느림을 알 수 있음
+- 64비트 환경이 32비트환경보다 div2_long long과 div_double가 더 빠름을 알 수 있으며 div2는 같음을 알 수 있다.
+
+
+
+### fx_s2809_sind
+
+- sinTable 을 이용해 math 라이브러리 없이 sin값을 계산해주는 함수이다.
+
+- 라이브러리를 사용하지 않기 때문에 퍼포먼스 측면에서 이점이 있다.
+
+  ```
+  	if ( fa < 0 ) 
+      {
+          sign = -1;
+          fa *= -1; 
+      }
+      fa = fa % FX32_360; 
+      if ( fa >= FX32_180 ) 
+      {
+          sign *= -1;
+          fa -= FX32_180;
+      }
+      if ( fa > FX32_90 ) 
+          fa = FX32_180 - fa;
+  ```
+
+- 먼저 부호체크를 한 후 360도로 나눈 나머지 각도를 통해 sin 값을 계산하는 코드이다.
+
+```
+  idx = fa>>8; 
+
+  ret0 = fx_s2308_SinTable[idx]; 
+
+  diff = fx_s2308_SinTable[idx+1]-ret0;
+
+  return ( sign *( ret0 + ((diff*(fa&0x00FF))>>8))); 
+```
+
+- 고정소수점 값을 이용한  sinTable을 이용해 sin 값을 리턴해주는 코드이다
+
 ## Reference
 
 https://t1.daumcdn.net/cfile/tistory/99853D3A5C5190CE09
\ No newline at end of file
diff --git a/image/32div1.png b/image/32div1.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c255cb0c0b4908341f26bc3e24a40127f0cc8a7
Binary files /dev/null and b/image/32div1.png differ
diff --git a/image/32div2.png b/image/32div2.png
new file mode 100644
index 0000000000000000000000000000000000000000..10da7a4270409713eb1a2c1d2f7a1141f14a2550
Binary files /dev/null and b/image/32div2.png differ
diff --git a/image/32mul1.png b/image/32mul1.png
new file mode 100644
index 0000000000000000000000000000000000000000..15d50e14a64c8b8d2ea103852bef7dd246dbb7c1
Binary files /dev/null and b/image/32mul1.png differ
diff --git a/image/32mul2.png b/image/32mul2.png
new file mode 100644
index 0000000000000000000000000000000000000000..1a61620b2ff06c969ba73254cd06fe839059053f
Binary files /dev/null and b/image/32mul2.png differ
diff --git a/image/64div1.png b/image/64div1.png
new file mode 100644
index 0000000000000000000000000000000000000000..84c9e9bc3b21194e6c5f742eb3aef721644d2ca0
Binary files /dev/null and b/image/64div1.png differ
diff --git a/image/64div2.png b/image/64div2.png
new file mode 100644
index 0000000000000000000000000000000000000000..ba42ba12a4c22e681b941fa1528d1f3dc9fbf9e8
Binary files /dev/null and b/image/64div2.png differ
diff --git a/image/64mul1.png b/image/64mul1.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae02147cf33fb2e6b3a1c7a4ab9db6200fafc347
Binary files /dev/null and b/image/64mul1.png differ
diff --git a/image/64mul2.png b/image/64mul2.png
new file mode 100644
index 0000000000000000000000000000000000000000..febb848c1c730f7f89027044a6bb24fe583b9081
Binary files /dev/null and b/image/64mul2.png differ
diff --git a/image/div1.png b/image/div1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f7df58b989bb39f52f3878a5b8dc715b58c6c9bb
Binary files /dev/null and b/image/div1.png differ
diff --git a/image/div2.png b/image/div2.png
new file mode 100644
index 0000000000000000000000000000000000000000..311617fcaddfdc9ca51f947ced8baa7ee37ad82d
Binary files /dev/null and b/image/div2.png differ
diff --git a/image/div3.png b/image/div3.png
new file mode 100644
index 0000000000000000000000000000000000000000..a39aff662acbba54356d07f892681e1c87f232ea
Binary files /dev/null and b/image/div3.png differ
diff --git a/image/mul1.png b/image/mul1.png
new file mode 100644
index 0000000000000000000000000000000000000000..d95a4722d1ba760aeebd64ca8e0f0dc372fbd7ca
Binary files /dev/null and b/image/mul1.png differ
diff --git a/image/mul2.png b/image/mul2.png
new file mode 100644
index 0000000000000000000000000000000000000000..afa214835ab48200ae1d10a9328b3008196724c7
Binary files /dev/null and b/image/mul2.png differ
diff --git a/image/mul3.png b/image/mul3.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d0049860276b40f194372501752ef79dc564808
Binary files /dev/null and b/image/mul3.png differ
diff --git a/image/sind.png b/image/sind.png
new file mode 100644
index 0000000000000000000000000000000000000000..06e2f2915921b1b0f159d87a53e23a02d34fd4ea
Binary files /dev/null and b/image/sind.png differ