Python
split 함수
특정한 구분자로 구분되어 입력된 값을 나누어 저장할때 사용
a, b = input().split()
map 함수
리스트 형태의 요소를 한번에 형변환할 때 사용
a, b = map(int, input().split())
문자열 인덱싱/슬라이싱
1
2
str = "korea"
print(str[1:4])
str[a:b]
는 문자열의 a번 인덱스부터 b-1번 인덱스까지를 의미하므로 위 코드를 실행시키면 1번인덱스인 o부터 3번 인덱스인 e까지인 ore
가 출력된다.
진수 변환
입력 a = int(input(),16)
16진수로 입력받음
code
1
2
3
4
5
print("%d", %a) # 10진수 출력
print("%x", %a) # 16진수 출력
print("%X", %a) # 16진수 대문자로 출력
print("%o", %a) # 8진수 출력
print("%O", %a) # 8진수 대문자로 출력
유니코드 변환
ord()
: 문자를 유니코드 상의 정수로 변환
chr()
: 정수를 유니코드 문자로 변환
소숫점 반올림
format(a, ".2f")
: 소숫점 이하 2번째 자리까지 반올림
format(a, ".3f")
: 소숫점 이하 3번째 자리까지 반올림
비트 연산자
비트 시프트
n << k
: n을 왼쪽으로 k칸씩 이동 → n x 2k
n >> k
n: 을 오른쪽으로 k칸씩 이동 → n x 2-k
n << 1
: n x 21
12 << 2
: 12의 4배이므로 48
12 >> 2
: 12의 1/4배이므로 3
~ (tilde) 연산
비트 단위로 True/False를 맞바꾸는 연산
~n = -n - 1
-n = ~n + 1
2진수 음수표기 방법
첫번째 방법
2진수의 제일 끝 자리를 부호용으로 정한 표기법
두번째 방법 : 1의 보수
2진수 양수의 각 비트를 반대로 바꿈.
ex) -5를 표현하기 위해 5인 0101을 1010으로 바꿈.
양수와 음수를 계산할 때 원래의 값에서 1이 작게 나오는 문제 발생.
최종 방법 : 2의 보수
1의 보수의 문제를 해결하기 위해 1의 보수로 변환 후 1을 더함.
Ref.
Twos complement: Negative numbers in binary (Ben Eater)
관련 예제