diff --git a/lec06/bin b/lec06/bin
new file mode 100755
index 0000000000000000000000000000000000000000..35ae6c7ba931bfaeb52dd2a68a8d52af88716625
Binary files /dev/null and b/lec06/bin differ
diff --git a/lec06/binary.c b/lec06/binary.c
new file mode 100644
index 0000000000000000000000000000000000000000..11e24ea150aab216d79ec2c67a514ea8d723c28b
--- /dev/null
+++ b/lec06/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/lec06/count1 b/lec06/count1
new file mode 100755
index 0000000000000000000000000000000000000000..044c87c01c5e85e79a9e8fc123de276add57f389
Binary files /dev/null and b/lec06/count1 differ
diff --git a/lec06/count1.c b/lec06/count1.c
new file mode 100644
index 0000000000000000000000000000000000000000..54e10c3b397d052fed3a288383e77a44e45ec773
--- /dev/null
+++ b/lec06/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/lec06/hello.c b/lec06/hello.c
new file mode 100644
index 0000000000000000000000000000000000000000..131a5b85be29acf7c78bc22e8dcabbb1df45f435
--- /dev/null
+++ b/lec06/hello.c
@@ -0,0 +1,23 @@
+#include<stdio.h>
+
+int add(int *a, int *b, int *c)
+{
+	*c =  *a + *b;
+}
+
+int main()
+{
+	const int a = 100;
+	int b = 200;
+	long long c = 999;
+	// int * == long long
+
+	fprintf(stdout, "%d : %lld %llx\n", a, &a, &a);
+	fprintf(stdout, "%d : %lld %llx\n", b, &b, &b);
+	add(&a, &b ,&c);
+	//c = a+b
+	fprintf(stdout, "%d : %lld %llx\n", c, &c, &c);
+	fprintf(stdout, "%d : %lld %llx\n", c, &c+1, &c+1);
+	fprintf(stdout, "%d : %lld %llx\n", c, &c+2, &c+2);
+
+}
diff --git a/lec06/report06.md b/lec06/report06.md
new file mode 100644
index 0000000000000000000000000000000000000000..9a17f431efc06e575a7e8754534c537ae331a05f
--- /dev/null
+++ b/lec06/report06.md
@@ -0,0 +1,7 @@
+### Lecture 06
+
+#### Pointer / Address
+
+*int const A : A라는 variable이 constant int이다.
+*int * const A : *가 const이다.
+*int const ** A : const int를 가르키는 포인트의 포인트  
diff --git a/lec06/sumarr.c b/lec06/sumarr.c
new file mode 100644
index 0000000000000000000000000000000000000000..163f343627379b05c07b11d83ef66c2d32e8373f
--- /dev/null
+++ b/lec06/sumarr.c
@@ -0,0 +1,36 @@
+#include<stdio.h>
+
+int sumArray3(int a[3], int sum)
+{
+	sum = *a;
+	a++;
+	sum += *a;
+	a++;
+	sum += *a;
+//	a[3] = a[0]+a[1]+a[2];
+//	sum = a[3];
+	fprintf(stdout, "%d : %lld %llx\n", sum, &sum, &sum);
+	return a[3];
+}
+int main()
+{
+	int a = 100;
+	int b = 200;
+	int c = 999;
+	int arr[4] = {100, 200, 300, 400};
+	int *parr;
+	parr = arr;
+	parr++;	
+	fprintf(stdout, "%d : %lld %lld\n", *parr,parr,arr);
+
+	c = sumArray3(arr, b);
+
+	fprintf(stdout, "%d : %lld %llx\n", b, &b, &b);
+	fprintf(stdout, "%d : %lld %llx\n", arr, arr, arr);
+	fprintf(stdout, "%d : %lld %llx\n", *arr, *arr, *arr);
+	fprintf(stdout, "%d : %lld %llx\n", &arr, &arr, &arr);
+	fprintf(stdout, "%d : %lld %llx\n", arr[2], &arr[2], &arr[2]);
+	fprintf(stdout, "%d : %lld %llx\n", arr[3], &arr[3], &arr[3]);
+	fprintf(stdout, "%d : %lld %llx\n", arr[4], &arr[4], &arr[4]);
+
+}