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); +}