- 비트 연산의 우선순위에 주의가 필요합니다. 일반적으로 사용하는 사칙연산 +, -, *, /은 비교, 논리 연산자(==, >, && 등)보다 우선순위가 높습니다. 하지만 비트 연산은 논리 연산보다 우선순위가 높으나 비교 연산보단 낮습니다.
//대소문자 변경해주는 함수
void converAlpha(char c){
return c^(1<<5);
}
struct point{
int x;
int y;
};
void findRestPoint(point a,point b, point c){
int tx,ty;
tx = a.x ^ b.x^ c.x;
ty = a.y^ b.y^ c.y;
return point temp{tx, ty};
}
문자열 두 개를 비교하는 데에는 O(문자열의 길이)의 시간이 듭니다. 만약 사용하는 문자의 가짓수가 적다면 필요한 bit만 골라내서 정수형 자료형에 압축할 수 있습니다.
예를 들어 문자열이 알파벳 대문자로만 이루어졌다면 알파벳끼리를 구분하는 데에 1이상 26이하의 값만 필요합니다. 이는 5bits 만으로도 표현할 수 있죠.