2021-05-06 c++

2021. 5. 7. 11:22카테고리 없음

비트와이즈 - 기계의 근본연산


/*  
Bitwise or  |  
Bitwise and  &  
shift  <<  >>  
*/  
#include <cstdio>  

void foo(int params) {  
int category1 = 1;  
int category2 = 1<<1; //2  
int category3 = 1<<2; //4  

if ((category1 & params) != 0) {  
printf("카테고리 1에 포함\n");  
}  
if ((category2 & params) != 0) {  
printf("카테고리 2에 포함\n");  
}  
if ((category3 & params) != 0) {  
printf("카테고리 3에 포함\n");  
}  
}  

int main() {  
int v1=1;  
int v2=2;  

int bitwise_or = v1 | v2;  
printf("%d\n", bitwise_or);  

int bitwise\_and = v1 & v2;  
printf("%d\n", bitwise_and);  

int bitwise\_xor = v1 ^ v2;  
printf("%d\n", bitwise_xor);  

int shift\_left = v2 << 1; //2,4,8 단위로 곱하기  
printf("%d\n", shift_left);  

int shift\_right = v2 >> 1; //2,4,8, 단위로 나누기  
printf("%d\n", shift_right);  

int mario_category = 8 + 4 + 2 + 1; // 비트연산해서 마리오와 지형지물이 겹치면 true반환  
int ememy_category = 0 + 4 + 2 + 1;   
int turtle_category = 0 + 0 + 2 + 1;  
int terrian_category = 0 + 4 + 0 + 0;  

foo(1 | 2);  
return 0;  
}
728x90