^= 32를 사용하여 대문자를 소문자로 또는 그 반대로 변환
프로그래머는 일반적으로 대문자와 소문자 사이에서 문자를 변환해야 하는 상황에 직면합니다. . 32를 빼거나 더하는 것이 일반적인 접근 방식이지만 보다 효율적인 솔루션은 다음 예에서 설명한 대로 ^= 32 연산자를 사용하는 것입니다.
char foo = 'a'; foo ^= 32; char bar = 'A'; bar ^= 32; cout << foo << ' ' << bar << '\n'; // foo is A, and bar is a
이 연산자의 작동 방식을 이해하려면 ASCII 이진수로 된 영어 문자에 대한 코드 테이블:
A 1000001 a 1100001 B 1000010 b 1100010 C 1000011 c 1100011 ... Z 1011010 z 1111010
소문자와 대문자의 유일한 차이점은 왼쪽에서 여섯 번째 비트(두 번째 비트)에 있다는 점에 유의하세요. 최하위 비트). 특히 이진수 32(0100000)는 해당 비트 위치를 나타냅니다.
비트 배타적 OR(^=) 연산자는 지정된 비트의 값을 토글합니다. 따라서 ^= 32 연산을 수행하면 효과적으로 여섯 번째 비트를 뒤집는 것입니다. 문자가 원래 소문자(1)였다면 대문자(0)가 되고 그 반대도 마찬가지입니다.
따라서 ^= 32 연산자는 문자를 대문자와 소문자로 변환하는 편리한 단축키 역할을 하여 효율적인 32를 빼거나 더하는 것에 대한 간결한 대안입니다.
위 내용은 ^= 32는 어떻게 대문자와 소문자를 효율적으로 변환합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!