반응형

C언어/언제나 C언어 15

비트 자리 이동 연산, 쉬프트 연산[언제나 C언어]

쉬프트 연산 [언제나 C언어] 이번 강의는 비트 자리 이동 연산, 쉬프트 연산을 알아볼게요. 1. 왼쪽 쉬프트 > 1. 왼쪽 쉬프트 4;//shr printf("16진수: %X %X\n", u1, u2); printf("10진수: %d %d\n", u1, u2); int i1 = -48, i2; i2 = i1 >> 4;//sar printf("16진수: %X %X\n", i1, i2); printf("10진수: %d %d\n", i1, i2); return 0; } 본문 설명 바로가기 비트 자리 이동 연산, 쉬프트 연산[언제나 C언어] – 언제나 휴일 안녕하세요. 언제나 휴일에 언휴예요. 이번 강의는 비트 자리 이동 연산, 쉬프트 연산을 알아볼게요. 1. 왼쪽 쉬프트 > 1. 왼쪽 쉬프트

^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); 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("%..

실수 형식 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(..

반응형