반응형

C언어 109

디딤돌 알고리즘 C언어 [온라인 무료 제공 책 본문 및 동영상]

책 소개 이 책은 프로그래머의 기초 지식인 알고리즘을 이론적인 접근과 구현을 다루고 있습니다. 알고리즘은 문제를 해결하기 위한 논리의 집합이예요. 문제 해결 방법으로 분류하면 반복 알고리즘, 재귀 알고리즘, 분할 정복, 동적 프로그래밍, 탐욕 알고리즘 등이 있죠. 컴퓨터 프로그래밍을 업무로 하는 이들에게 알고리즘은 실질적인 구현에서 필수적으로 필요합니다. 그리고 이들을 다루는 책은 매우 다양하죠. 이론으로 접근하는 책들은 다양한 알고리즘을 다루지만 실질적인 구현없이 추상적으로 소개할 때가 많습니다. 그리고 실질적인 구현도 다루는 책들은 아주 기초적인 알고리즘을 중심으로 다루고 있어요. 알고리즘은 문제 해결 방법에 따라 반복 알고리즘, 재귀 알고리즘, 분할 정복 알고리즘, 동적 프로그래밍, 탐욕 알고리즘 ..

^mask를 이용한 암호화, & mask를 이용한 이진수 출력 [언제나 C언어]

^ 연산을 이용한 암호화 및 복호화 #include int main() { int pd = 0x12345678; int key = 0x2345873a; int sec = pd ^ key; int data = sec ^ key; printf("평문:%#X\n", pd); printf("키:%#X\n", key); printf("암호문:%#X\n", sec); printf("복호문:%#X\n", data); return 0; } 실행 결과 평문:0x12345678 키:0x2345873A 암호문:0x3171D142 복호문:0x12345678 & mask를 이용한 이진수 출력 #include int main() { int num; printf("정수:"); scanf_s("%d", &num); printf("%..

비트 연산 & | ^ ~ [언제나 C언어]

비트 연산 /* https://ehpub.co.kr 언제나 C언어 비트 연산 */ #include int main() { int i = 0x11FF0000; printf("6&5:%d\n", 6 & 5); printf("6|5:%d\n", 6 | 5); printf("6^5:%d\n", 6 ^ 5); printf("%#X\n", ~i); return 0; } 실행 결과 6&5:4 6|5:7 6^5:3 0xEE00FFFF and 마스크 /* https://ehpub.co.kr 언제나 C언어 비트 and mask */ #include int main() { int a = 0x12345678; int b = 0xFFFF0000; int c = 0x0000FFFF; printf("%#x\n", a & b); p..

비교 연산, 논리 연산의 도움을 받으세요. [언제나 C언어]

비교 연산 소스 코드 #include //표준 입출력 헤더 int main() { printf("%d\n", 1 < 2); printf("%d\n", 1 2); printf("%d\n", 1 >= 2); return 0; } 실행 결과 1 1 0 1 0 0 주의할 코드 #include //표준 입출력 헤더 int main() { printf("%d\n", 2 < 1 < 3); return 0; } 실행 결과가 1입니다. 수정한 코드 #include //표준 입출력 헤더 int main() { printf("%d\n", (2 < 1) && (2 < 3) ); return 0; } 실행 결과가 0입니다.

논리 형식과 논리 연산 [언제나 C언어]

부정 연산 1 #include int main() { char c = 'a'; short s = 2; int i = 4; float f = 0.1f; double df = 0.2; printf("%d %d %d %d %d\n", !c, !s, !i, !f, !df); return 0; } 부정 연산 2 #include int main() { char c2 = 0; int i2 = 0; double df2 = 0; printf("%d %d %d\n", !c2, !i2,!df2); return 0; } 논리곱 &&과 논리합 || #include int main() { char c = 'a'; short s = 2; int i = 4; float f = 0.1f; double df = 0.2; char c2 ..

이럴 때 나머지 연산을 사용하자. 0123401234012… [언제나 C언어]

소스 코드 /* https://ehpub.co.kr 언제나 C언어 나머지 연산, 이럴 때 사용하자. 0123401234012... */ #include //표준 라이브러리 헤더 #include //표준 입출력 헤더 int main() { int i = 0; printf("%d\n", i); i = (i + 1) % 5; printf("%d\n", i); i = (i + 1) % 5; printf("%d\n", i); i = (i + 1) % 5; printf("%d\n", i); i = (i + 1) % 5; printf("%d\n", i); i = (i + 1) % 5; printf("%d\n", i); i = (i + 1) % 5; printf("%d\n", i); i = (i + 1) % 5; pr..

산술 연산과 overflow [언제나 C언어]

사칙 연산과 나머지 연산 - 피연산자가 모두 정수 #include //표준 입출력 헤더 int main() { //+, -, *, /, % printf("%d\n", 14 + 3); printf("%d\n", 14 - 3); printf("%d\n", 14 * 3); printf("%d\n", 14 / 3); printf("%d\n", 14 % 3); return 0; } 나누기 연산 - 피연산자 중에 실수가 있을 때 #include //표준 입출력 헤더 int main() { printf("%f\n", 14 / 3.); return 0; } overflow #include //표준 입출력 헤더 int main() { int a = 0x7FFFFFFF; //0111 1111 1111 1111 1111 1..

실수 형식 표현 범위, FLT_MIN, FLT_MAX, FLT_TRUE_MIN [언제나 C언어]

소스 코드 /* http://ehpub.co.kr 언제나 C언어 실수 형식 표현 범위 */ #include //표준 입출력 헤더 #include typedef union { float value; struct { unsigned mantissa : 23; unsigned exponent : 8; unsigned sign : 1; }sv; }Test; int main(void) { Test test = { 0 }; test.sv.exponent = 1; test.sv.mantissa = 1; printf("%.50f\n", test.value); printf("%.50f\n", FLT_MIN); test.sv.exponent = 0; printf("%.50f\n", test.value); printf("%..

반응형