반응형

전체 글 741

비트 연산 & | ^ ~ [언제나 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); 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("%..

3X3 퍼즐 게임 소스 코드

다음의 내용을 다루고 있어요. 1. _getch 함수를 이용하여 방향 키 입력받기 2. 정해 진 값을 랜덤하게 고르기 3. 3X3 게임 알고리즘 소스 코드 /* https://ehpub.co.kr 언제나 C언어 예제 Center 3X3 퍼즐 만들기 */ #include #include #include #include #define LEFT 75 #define RIGHT 77 #define UP 72 #define DOWN 80 #define SWAP(x,y) {int temp=x; x=y; y=temp;} typedef struct Puzzle { char base[3][3]; int row; int col; }Puzzle; void print_puzzle(Puzzle* puzzle) { int r, c..

디지털 시계 만들기

디지털 시계 만들기 동영상 강의 C언어 학습할 때 콘솔 응용만 매 번 만들어서 지루할 수 있죠. 특별히 무엇인가를 전달하기 위한 목적보다 지루함을 덜기 위해 "그냥" 만드는 디지털 시계 만들기 실습입니다. 현재 초 단위 시간을 얻어오는 time(0) 함수와 초 단위 시간을 지역 시각으로 변환해 주는 localtime_s 함수를 이용합니다. 콘솔 응용에서 커서 위치를 이동시키는 SetConsoleCursorPosition 함수는 Win32 API 함수를 이용합니다. 키보드를 눌렀는지 체크하는 부분은 _kbhit 함수를 이용합니다. #include #include #include #include char* digits[10][5][4] =//0~9까지 출력할 정보 { { { "■","■","■","■" },..

실수 형식 double, float 표현과 출력 [언제나 C언어]

실수 형식 메모리 크기 확인 #include //표준 입출력 헤더 int main(void) { printf("sizeof(double):%d bytes, sizeof(float):%d bytes\n", sizeof(double),sizeof(float)); return 0; } 실수 리터럴 표현 크기 확인 #include //표준 입출력 헤더 int main(void) { printf("sizeof(0.1):%d bytes\n", sizeof(0.1)); printf("sizeof(0.1f):%d bytes\n", sizeof(0.1f)); return 0; } 다양한 실수 표현 #include //표준 입출력 헤더 int main(void) { double df = 3.4; //실수 표현 디폴트 형식..

확장 문자 형식 wchar_t와 한글 문자 [언제나 C언어]

char 형식의 한계 #include //표준 입출력 헤더 int main() { char ch = 'ㄱ'; printf("%c\n", ch); return 0; } wchar_t 제공, 하지만... #include //표준 입출력 헤더 int main() { wchar_t ch = L'ㄱ'; wprintf(L"%c\n", ch); return 0; } locale 지정 #include //표준 입출력 헤더 #include int main() { wchar_t ch = L'ㄱ'; setlocale(LC_ALL, "KOREAN"); wprintf(L"%c\n", ch); return 0; } wchar_t 형식 크기 #include //표준 입출력 헤더 #include int main() { printf(..

반응형