컴퓨터 내부에는 2진수 형태로 값들이 저장
2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로
지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 1/2로 줄어든다
왼쪽 비트시프트(<<) : 기존 수 오른쪽에 0이 주어진 숫자만큼 추가되고,
오른쪽 비트시프트(>>) : 기존 수 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가되고,
가장 오른쪽에 있는 1비트는 사라진다(??)
n = 20
print(n<<1) #20을 2배 한 값인 40
print(n<<2) #20을 4배 한 값인 80
print(n>>1) #20을 2로 나눈 값인 10
print(n>>2) #20을 4로 나눈 값인 5
n = 5
print(n<<1) #10을 2배 한 값인 10
print(n<<2) #10을 4배 한 값인 40
print(n>>1) #10을 2로 나눈 값인 5
print(n>>2) #10을 4로 나눈 몫인 2
정수 10의 2진수 표현은 ... 1010
10 << 1 을 계산하면 ... 10100 이 된다 이 값은 10진수로 20
10 >> 1 을 계산하면 ... 101 이 된다. 이 값은 10진수로 5
20의 2진수 표현 10100
20 << 1 101000 10진수로 40
20 >> 2 101 10진수로 5
'코테 공부 > python' 카테고리의 다른 글
[프로그래머스] Python 코테 스터디 개인정보 수집 유효기간 (0) | 2023.06.02 |
---|---|
Python 문자열 계산하기, eval(expression (=식) 문자열) 함수 (0) | 2023.06.02 |
Python set (0) | 2023.06.02 |
Python 코테 스터디 ascii_lowercase, set으로 합,차,교집합 (0) | 2023.06.01 |
Python 소인수분해 & n 이하 소수(에라토스테네의 체) (0) | 2023.05.31 |