포시코딩

12월31일 본문

TIL

12월31일

포시 2022. 12. 31. 18:28
728x90

비트 연산자

예전에 코테 문제를 풀다 이진수를 이용한 연산에 대해 공부한 적 있는데

그 때 한번 겪고 말아서 이번에 다시 >> 시프트 비트 연산자가 나온김에 복습해본다.

 

OR 비트 논리 연산자

c = bin(0b10110 | 0b01010)
print(c)

a = int(0b10110)  # 22
b = int(0b01010)  # 10
print(bin(a | b))

d = bin(22 | 10)
print(d)

 

<< 시프트 연산자

비트의 위치를 이동시키는 연산자로 <<일 경우 왼쪽으로, >>는 오른쪽으로 이동시킨다.

def solution(n, t):
    return n << t

이번 문제에서 나온 위 풀이는 n에 대해 t만큼 왼쪽으로 이동시킨다는건데 

n << t는 n*2^n과 같다는 방법을 이용했다.

참고로 n >> t여서 t만큼 이동했을 때 비트 범위 밖으로 넘어가는 값에 대해서는 그냥 사라진다는 점을 확인해야한다.

 

아스키코드 변환

Python에서 알파벳이 소문자인지 대문자인지 확인하는 방법으로

아스키코드값을 통해 알아보는 방법을 떠올려 어떻게 해야 되는지 정리해보고자 한다.

# 아스키코드로 변환
ord('a')
ord('A')

# 문자로 변환
chr(97)
a = [chr(x) for x in range(ord('A'), ord('Z')+1)]
print(a)
# ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

b = [chr(x) for x in range(ord('a'), ord('z')+1)]
print(b)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']

print(ord('A'), ord('Z'), ord('a'), ord('z'))
# 65 90 97 122

 

Python 문자열의 대소문자

str.islower() # 소문자인지 확인
str.isupper() # 대문자인지 확인
str.lower() # 소문자로 변환
str.upper() # 대문자로 변환

str.swapcase() # 대소문자를 서로 변환
728x90

'TIL' 카테고리의 다른 글

1월2일  (0) 2023.01.02
1월1일  (0) 2023.01.01
12월30일  (0) 2022.12.30
12월29일  (0) 2022.12.29
12월28일  (0) 2022.12.27