1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | void Study013::ChapterContents( void ) { printf_s("\tStudy013의 내용\n"); // & AND연산 : 하나이상 0 이면 0 둘다 1이면 1 // 0 & 0 return 0; // 0 & 1 return 0; // 1 & 0 return 0; // 1 & 1 return 1; int num1 = 15; // 00000000 00000000 00000000 00001111 int num2 = 20; // 00000000 00000000 00000000 00010100 // 00000000 00000000 00000000 00000100 int num3 = num1 & num2; printf("AND 연산 결과 : %d \n", num3); // AND 연산 결과 : 4 // | OR연산 : 둘다 0이면 0 하나 이상1이면 1 // 0 & 0 return 0; // 0 & 1 return 1; // 1 & 0 return 1; // 1 & 1 return 1; num1 = 15; // 00000000 00000000 00000000 00001111 num2 = 20; // 00000000 00000000 00000000 00010100 // 00000000 00000000 00000000 00011111 num3 = num1 | num2; printf("OR 연산 결과 : %d \n", num3); // OR 연산 결과 : 31 // ^ XOR연산 : 같으면 0 다르면 1 // 0 & 0 return 0; // 0 & 1 return 1; // 1 & 0 return 1; // 1 & 1 return 0; num1 = 15; // 00000000 00000000 00000000 00001111 num2 = 20; // 00000000 00000000 00000000 00010100 // 00000000 00000000 00000000 00011011 num3 = num1 ^ num2; printf("XOR 연산 결과 : %d \n", num3); // XOR 연산 결과 : 27 // ~ NOT연산 : 0 과 1의 반전 // ~ 0 return 1; // ~ 1 return 0; num1 = 15; // 00000000 00000000 00000000 00001111 num2 = ~num1; // 11111111 11111111 11111111 11110000 printf("NOT 연산 결과 : %d \n", num2); // NOT 연산 결과 : -16 // << 연산 : 비트단위로 왼쪽으로 이동 // <<1 왼쪽으로 한칸이동 // <<2 왼쪽으로 두칸이동 num1 = 15; // 00000000 00000000 00000000 00001111 int result1 = num1 << 1; // 왼쪽으로 한칸씩 이동 // 00000000 00000000 00000000 00011110 int result2 = num1 << 2; // 왼쪽으로 두칸씩 이동 // 00000000 00000000 00000000 00111100 int result3 = num1 << 3; // 왼쪽으로 세칸씩 이동 // 00000000 00000000 00000000 01111000 printf("<< 연산 결과 : %d, %d, %d \n", result1, result2, result3); // << 연산 결과 : 30, 60, 120 // >> 연산 : 비트단위로 오른쪽으로 이동 // 이 연산의 경우 CPU마다 다를수가 있는데 음수를 유지하기 위해 1을 체우는 경우가 있고 그렇지 않은 경우가 있다. int num = -16; int result = num >> 2; printf(">> 연산 결과 : %d \n", result); // << 연산 결과 : -4 //현제 CPU는 음의 부호를 유지한다. } | cs |
'프로그래밍 > 코딩' 카테고리의 다른 글
printf와 scanf의 사용, 그리고 서식문자. (0) | 2016.04.11 |
---|---|
자료형 (0) | 2016.04.11 |
templet 기반의 Node 만들어 보기 (0) | 2016.04.04 |
랜덤 난수 생성 함수 와 메르센 트위스터 (0) | 2016.01.28 |
try -> throw -> cahth (0) | 2015.07.04 |