diff --git a/a.out b/a.out
index ff394b99890b55a2a041060b669b63eaa0a38aad..e847ac1488019bf073dd585964f3a6b6a910ef5e 100644
Binary files a/a.out and b/a.out differ
diff --git a/fx_s4716_double.c b/fx_s4716_double.c
index 911464df0c0b79b3b70ef73c6fb7bbddfb425cb3..94d92e6253d257154e56b581e61be2315918c229 100644
--- a/fx_s4716_double.c
+++ b/fx_s4716_double.c
@@ -18,11 +18,11 @@ void fx_sub(fx_s4716 a, fx_s4716 b){
 }
 void fx_mul(fx_s4716 a, fx_s4716 b){
     double mul=FX_S4716_DOUBLE_MUL(a,b);
-    printf("fx mul : %.16lf\n",mul);
+    printf("fx mul : %.16lf\n",DOUBLE_TO_FX(mul));
 }
 void fx_div(fx_s4716 a, fx_s4716 b){
     double div=FX_S4716_DOUBLE_DIV(a,b);
-    printf("fx div : %.16lf\n",div);
+    printf("fx div : %.16lf\n",DOUBLE_TO_FX(div));
 }
 void fx_pi(){
     printf("pi : %.16lf\n",FX_PI);
diff --git a/fx_s4716_longlong.c b/fx_s4716_longlong.c
index 2df33b0f19bd0acc23af70d926fd7ef9a8aa08df..48136a889751f7767867076b7df394333068b00a 100644
--- a/fx_s4716_longlong.c
+++ b/fx_s4716_longlong.c
@@ -13,31 +13,31 @@ long long fx_to_longlong(fx_s4716 a){
 fx_s4716 longlong_to_fx(long long a){
 	return a << 16;
 }
-fx_s4716 fx_s4716_longlong_mul(fx_s4716 a, fx_s4716 b){
+fx_s4716 fx_s4716_longlong_mul1(fx_s4716 a, fx_s4716 b){
 	long long result=FX_S4716_LONGLONG_MUL1(a, b);
-	return result;
+	return longlong_to_fx(result);
 }
-fx_s4716 fx_s4716_longlong_mul1(fx_s4716 a, fx_s4716 b){
+fx_s4716 fx_s4716_longlong_mul2(fx_s4716 a, fx_s4716 b){
 	long long result=FX_S4716_LONGLONG_MUL2(a, b);
-	return result;
+	return longlong_to_fx(result);
 }
-fx_s4716 fx_s4716_longlong_mul2(fx_s4716 a, fx_s4716 b){
+fx_s4716 fx_s4716_longlong_mul3(fx_s4716 a, fx_s4716 b){
 	long long result=FX_S4716_LONGLONG_MUL3(a, b);
-	return result;
+	return longlong_to_fx(result);
 }
-fx_s4716 fx_s4716_longlong_div(fx_s4716 a, fx_s4716 b){
+fx_s4716 fx_s4716_longlong_div1(fx_s4716 a, fx_s4716 b){
 	long long result=FX_S4716_LONGLONG_DIV1(a, b);
-	return result;
+	return fx_to_longlong(result);
 }
-fx_s4716 fx_s4716_longlong_div1(fx_s4716 a, fx_s4716 b){
+fx_s4716 fx_s4716_longlong_div2(fx_s4716 a, fx_s4716 b){
 	long long result=FX_S4716_LONGLONG_DIV2(a, b);
-	return result;
+	return fx_to_longlong(result);
 }
-fx_s4716 fx_s4716_longlong_div2(fx_s4716 a, fx_s4716 b){
+fx_s4716 fx_s4716_longlong_div3(fx_s4716 a, fx_s4716 b){
 	long long result=FX_S4716_LONGLONG_DIV3(a, b);
-	return result;
+	return fx_to_longlong(result);
 }
 fx_s4716 fx_s4716_longlong_sin(fx_s4716 a){
 	long long result=sinTable[a];
-	return result;
+	return fx_to_longlong(result);
 }
diff --git a/fx_s4716_longlong.h b/fx_s4716_longlong.h
index 572348fe1bacb5fd819171ce6b8162378f4b7034..02b8d5e0ea1e65c4ff35e41e5ef02824f025fbb0 100644
--- a/fx_s4716_longlong.h
+++ b/fx_s4716_longlong.h
@@ -1,7 +1,9 @@
-#define FX_S4716_LONGLONG_MUL(a, b) (((a) * (b)) >> 16)
-#define FX_S4716_LONGLONG_MUL1(a, b) ((a >> 8) * (b >> 8))
-#define FX_S4716_LONGLONG_MUL2(a, b) (((a >> 4) * (b >> 4)) >> 8)
+typedef long long fx_s4716;
 
-#define FX_S4716_LONGLONG_DIV(a, b) ((a << 16) / (b))
-#define FX_S4716_LONGLONG_DIV1(a, b) (((a << 8) / (b)) << 8)
-#define FX_S4716_LONGLONG_DIV2(a, b) (((a << 4) / (b >> 4)) << 8)
+#define FX_S4716_LONGLONG_MUL1(a, b) (((a) * (b)) >> 16)
+#define FX_S4716_LONGLONG_MUL2(a, b) ((a >> 8) * (b >> 8))
+#define FX_S4716_LONGLONG_MUL3(a, b) (((a >> 4) * (b >> 4)) >> 8)
+
+#define FX_S4716_LONGLONG_DIV1(a, b) ((a << 16) / (b))
+#define FX_S4716_LONGLONG_DIV2(a, b) (((a << 8) / (b)) << 8)
+#define FX_S4716_LONGLONG_DIV3(a, b) (((a << 4) / (b >> 4)) << 8)
diff --git a/test.c b/test.c
index 29fcaa3068dc1abac5cb2045dd9028667763035a..ae437d6cb4249cbd94e6884e39768fca162d8582 100644
--- a/test.c
+++ b/test.c
@@ -13,6 +13,16 @@ extern void fx_inv_pi();
 extern void fx_sqrt(fx_s4716 a);
 extern void fx_pow(fx_s4716 a);
 extern void fx_sine(fx_s4716 a);
+extern fx_s4716 longlong_to_fx(long long a);
+extern long long fx_to_longlong(fx_s4716 a);
+extern fx_s4716 fx_s4716_longlong_mul1(fx_s4716 a, fx_s4716 b);
+extern fx_s4716 fx_s4716_longlong_mul2(fx_s4716 a, fx_s4716 b);
+extern fx_s4716 fx_s4716_longlong_mul3(fx_s4716 a, fx_s4716 b);
+extern fx_s4716 fx_s4716_longlong_div1(fx_s4716 a, fx_s4716 b);
+extern fx_s4716 fx_s4716_longlong_div2(fx_s4716 a, fx_s4716 b);
+extern fx_s4716 fx_s4716_longlong_div3(fx_s4716 a, fx_s4716 b);
+extern fx_s4716 fx_s4716_longlong_sin(fx_s4716 a);
+
 
 int main()
 {
@@ -33,76 +43,76 @@ int main()
     else if(option == 1)
     {
         printf("   OPTION \n");
-        printf("0. add \n");
-        printf("1. subtract \n");
-        printf("2. multiply \n");
-        printf("3. divide \n");
-        printf("4. square root \n");
-        printf("5. power \n");
-        printf("6. print PI \n");
-        printf("7. print inverse PI \n");
-        printf("8. fix to double \n");
-        printf("9. double to fix \n");
-        printf("10 get sine value \n");
-        printf("11. quit\n\n");
+        printf("1. add \n");
+        printf("2. subtract \n");
+        printf("3. multiply \n");
+        printf("4. divide \n");
+        printf("5. square root \n");
+        printf("6. power \n");
+        printf("7. print PI \n");
+        printf("8. print inverse PI \n");
+        printf("9. fix to double \n");
+        printf("10. double to fix \n");
+        printf("11. get sine value \n");
+        printf("0. quit\n\n");
         while (1) {
             printf("Type option : ");
             fflush(stdout);
             scanf("%d", &option);
             switch (option)
             {
-            case 0:
+            case 1:
                 printf("Input two number : "); fflush(stdout);
                 scanf("%lld %lld", &a, &b);
                 fx_add(a, b);
                 break;
-            case 1:
+            case 2:
                 printf("Input two number : "); fflush(stdout);
                 scanf("%lld %lld", &a, &b);
                 fx_sub(a, b);
                 break;
-            case 2:
+            case 3:
                 printf("Input two number : "); fflush(stdout);
                 scanf("%lld %lld", &a, &b);
                 fx_mul(a, b);
                 break;
-            case 3:
+            case 4:
                 printf("Input two number : "); fflush(stdout);
                 scanf("%lld %lld", &a, &b);
                 fx_div(a, b);
                 break;
-            case 4:
+            case 5:
                 printf("Input one number : "); fflush(stdout);
                 scanf("%lld", &a);
                 fx_sqrt(a);
                 break;
-            case 5:
+            case 6:
                 printf("Input one number : "); fflush(stdout);
                 scanf("%lld", &a);
                 fx_pow(a);
                 break;
-            case 6:
+            case 7:
                 fx_pi();
                 break;
-            case 7:
+            case 8:
                 fx_inv_pi();
                 break;
-            case 8:
+            case 9:
                 printf("Input fix number : "); fflush(stdout);
                 scanf("%lld", &a);
                 fx_to_double(a);
                 break;
-            case 9:
+            case 10:
                 printf("Input double number : "); fflush(stdout);
                 scanf("%lf", &c);
                 double_to_fx(c);
                 break;
-            case 10:
+            case 11:
                 printf("Input one number : "); fflush(stdout);
                 scanf("%lld", &a);
                 fx_sine(a);
                 break;
-            case 11:
+            case 0:
                 quit = 1;
             default:
                 break;
@@ -131,21 +141,22 @@ int main()
                 case 1 : 
                     printf("Input two number : "); fflush(stdout);
                     scanf("%lld %lld", &a, &b);
-                    t = fx_s4716_longlong_mul(a,b);
-                    tt = fx_s4716_longlong_mul1(a,b);
-                    ttt = fx_s4716_longlong_mul2(a,b);
+                    t = fx_s4716_longlong_mul1(a,b);
+                    tt = fx_s4716_longlong_mul2(a,b);
+                    ttt = fx_s4716_longlong_mul3(a,b);
                     printf("%lld %lld %lld\n", t, tt, ttt);
                     break;
                 case 2 :
                     printf("Input two number : "); fflush(stdout);
                     scanf("%lld %lld", &a, &b);
-                    t = fx_s4716_longlong_div(a,b);
-                    tt = fx_s4716_longlong_div1(a,b);
-                    ttt = fx_s4716_longlong_div2(a,b);
+                    t = fx_s4716_longlong_div1(a,b);
+                    tt = fx_s4716_longlong_div2(a,b);
+                    ttt = fx_s4716_longlong_div3(a,b);
                     printf("%lld %lld %lld\n", t, tt, ttt);
                     break;
             }
         }
     }
+    else {}
     
 }
\ No newline at end of file