diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..de74700bc749ec2a39100bd2943c7039e84f237c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.out
+*.o
diff --git a/.gitignores b/.gitignores
new file mode 100644
index 0000000000000000000000000000000000000000..de74700bc749ec2a39100bd2943c7039e84f237c
--- /dev/null
+++ b/.gitignores
@@ -0,0 +1,2 @@
+*.out
+*.o
diff --git a/a.out b/a.out
index 3eb90320f3e858f4ef44298b106b3bb4f6159aba..7773056280c215274a39b767b51689bd94a7ac56 100755
Binary files a/a.out and b/a.out differ
diff --git a/result.out b/result.out
new file mode 100644
index 0000000000000000000000000000000000000000..c7e2c4762824f4505461adfde95ce21dc4ad3172
Binary files /dev/null and b/result.out differ
diff --git a/test.c b/test.c
index 0c387088ec2fb563a53cb79fa85ce7ebc827df57..dbfec7b9835a93608e89a377ca1052453e7faf18 100644
--- a/test.c
+++ b/test.c
@@ -1,17 +1,48 @@
 #include <stdio.h>
-#include <math.h>
-// #### #### #### #### #### #### #### ####
+// #### #### #### #### . #### #### #### ####
 // S 15 . 16
 #define FX_Q_NUM 16
-#define FX_2_MINUS_16 1.52587890625e-05
+#define FX_2_MINUS_16 1.52587890625e-05F
+#define FX_2_PLUS_16 (1<<16)
+#define FX_S_15_16 11516
+#define FX_SYSTEM FX_S_15_16	
+
+typedef int fixed32;
+
+fixed32 fromFloat(float fa)
+{
+	return (fixed32) (fa * FX_2_PLUS_16);
+}
+
+float toFloat(fixed32 xa)
+{
+	return ((float) (xa)) * FX_2_MINUS_16;
+}
+
+fixed32 fxAdd(fixed32 a, fixed32 b)
+{
+	return fromFloat(toFloat(a)+toFloat(b));
+}
+
+
+fixed32 fxAdd2(fixed32 a, fixed32 b)
+{
+	return a+b;
+}
 
 int main()
 {
-	int ia;
+	int i = 0;
+	int ia, ib, ic, ic2;
 	float fa;
-	fscanf(stdin, "%d", &ia);
-	fprintf(stdout, "%d : %f %f \n", ia, (float) ia, (float) ia * powf(2.0f, -16));
-	
-	fscanf(stdin, "%f", &fa);
-	fprintf(stdout, "%f : %d %d \n", fa, (int) fa, (int) (fa * powf(2.0f, 16)));
+	// fscanf(stdin, "%d %d", &ia, &ib);
+	for (i = 0; i < 5000000; i++){
+		ic = fxAdd(i, i);
+		ic2 = fxAdd2(i, i);
+		fprintf(stdout, "%f + %f : %f, %f diff = %d \n", toFloat(i), toFloat(i), toFloat(ic), toFloat(ic2), ic-ic2);
+	}
+
+	// fprintf(stdout, "%d + %d : %d \n", ia, ib, ic);
+	// fprintf(stdout, "%f + %f : %f \n", toFloat(ia), toFloat(ib), toFloat(ic));
+	// fprintf(stdout, "%d + %d : %d \n", ia, ib, ic);
 }