diff --git a/lec04/.pipe.swp b/lec04/.pipe.swp
index e5f0fab7d87b26f56ec7815beb1b4d016110376f..3429576c027a6495af0b292b523ceb260841675c 100644
Binary files a/lec04/.pipe.swp and b/lec04/.pipe.swp differ
diff --git a/lec05/bin b/lec05/bin
new file mode 100755
index 0000000000000000000000000000000000000000..35ae6c7ba931bfaeb52dd2a68a8d52af88716625
Binary files /dev/null and b/lec05/bin differ
diff --git a/lec05/binary.c b/lec05/binary.c
new file mode 100644
index 0000000000000000000000000000000000000000..11e24ea150aab216d79ec2c67a514ea8d723c28b
--- /dev/null
+++ b/lec05/binary.c
@@ -0,0 +1,19 @@
+#include<stdio.h>
+
+int main()
+{
+	int i;
+	unsigned int in_a;
+	fscanf(stdin, "%u", &in_a);
+	fprintf(stdout, "%u \t : ", in_a);
+	for(i=31; i>= 0; i--)
+	{	
+		fprintf(stdout, "%d", ((in_a>>i) & 1));
+		if(i % 4 == 0)
+		       	fprintf(stdout, " ");
+	}
+	fprintf(stdout, "\n");
+	
+}
+
+
diff --git a/lec05/count1 b/lec05/count1
new file mode 100755
index 0000000000000000000000000000000000000000..044c87c01c5e85e79a9e8fc123de276add57f389
Binary files /dev/null and b/lec05/count1 differ
diff --git a/lec05/count1.c b/lec05/count1.c
new file mode 100644
index 0000000000000000000000000000000000000000..54e10c3b397d052fed3a288383e77a44e45ec773
--- /dev/null
+++ b/lec05/count1.c
@@ -0,0 +1,51 @@
+#include<stdio.h>
+#define VALUE_ONE 1
+
+// Count number of 1 (binary)
+int count_one(unsigned int a)
+{
+	int const con = 1;
+	int static numCalls = 100;
+	int count = 0;
+	// con++; -> ERROR
+	while(a != 0)
+	{	count += a & VALUE_ONE;
+		a >>=VALUE_ONE;
+		//if((a>>i) & 1)
+		//	count ++;
+		//	if문 보다 아래처럼 사용하는 것이 훨씬 빠름
+		//count += (a>>i) & 1;
+	//count += a & 1; // 000..0001과 비교즉 마지막 숫자와 계속 비교
+	//a >>=1; //한칸씩 오른쪽 쉬프트 
+	}
+	fprintf(stderr, "Call : %d\n", numCalls);
+	numCalls++;
+	return count;
+}
+
+int main()
+{
+	int i;
+	unsigned int in_a;
+	fscanf(stdin, "%u", &in_a);
+	fprintf(stdout, "%u \t : ", in_a);
+	for(i=31; i>= 0; i--)
+	{	
+		fprintf(stdout, "%d", ((in_a>>i) & 1));
+		if(i % 4 == 0)
+		       	fprintf(stdout, " ");
+	}
+	fprintf(stdout, "\n");
+
+	count_one(in_a);
+	count_one(in_a);
+	count_one(in_a);
+	count_one(in_a);
+
+	fprintf(stdout, "\n");
+	fprintf(stdout, "count : %d\n", count_one(in_a));
+	return 0;
+	
+}
+
+
diff --git a/lec05/hello.c b/lec05/hello.c
new file mode 100644
index 0000000000000000000000000000000000000000..1e479a9748e924dad16b78ed5b1cddfe070764c7
--- /dev/null
+++ b/lec05/hello.c
@@ -0,0 +1,23 @@
+#include<stdio.h>
+
+int main()
+{
+	signed int siA;
+	unsigned int unA;
+	signed int sumS;
+	unsigned int sumU;
+
+	fscanf(stdin, "%d", &siA);
+	fprintf(stdout, "Signed Integer :  %d\n", siA);
+	unA = siA;
+	fprintf(stdout, "Unsigned Integer : %u\n", unA);
+	fprintf(stdout, "Unsigned Integer percent d : %d\n", unA);
+	fprintf(stdout, "signed Integer percent u : %u\n", siA);
+
+	sumS = siA + unA;
+	sumU = siA + unA;
+	fprintf(stdout, "sumS %%d %d\n", sumS);
+	fprintf(stdout, "sumS %%u %u\n", sumS);
+	fprintf(stdout, "sumS %%d %d\n", sumU);
+	fprintf(stdout, "sumS %%u %u\n", sumU);
+}