개발지식/이것저것

[비트연산]대소문자 변경을 비트연산으로 해보자.

뜨거운 개발자 2023. 1. 15. 00:40

대소문자 변경을 할 때 우리는 XOR연산을 통해 쉽게 할 수 있다.

A^32를 해주게 되면 a가 되고 a^32해주게 되면 A가 된다.

이건 매우 간단하게 설명이 가능한데, a와 A가 아스키 코드 값으로 32만큼 차이가 나기 때문이다.

a 는 아스키 코드 값으로 97 A는 65 이다.

둘 사이 차이는 32로 서로 32를 더하고 빼면 나오는 값이다.

비트로 보기

a = 97을 8비트로 보면 0110,0001 이고 A = 65 [0100,0001] 이다.

이걸 조금 더 보면 알파벳의 갯수는 26개이고, 각각을 비트로 표현하면

A = [0100,0001](65) Z =[0101,101](90)이다.

a = [0110,0001](97) z = [0111,1010](122)이다.

따라서 A^32가 어떤의미인가, 32를 비트로 표현하면 [0010,0000]이다.

따라서 둘을 XOR연산을 해주게 되면 당연하게도 둘 중하나만 있어야 1이므로 각각의 알파벳의 비트가 역전되게 되는 것이다.


Uploaded by N2T

728x90

'개발지식 > 이것저것' 카테고리의 다른 글

read 함수  (0) 2022.12.22
파일디스크립터에 대하여(간단한 설명)  (0) 2022.12.19
컴파일에 대하여(간략설명)  (0) 2022.12.19
UML다이어그램  (0) 2022.12.19
COM 기술  (0) 2022.12.19