6. 기초-비트 시프트 연산
- 정수 1개를 입력받아 2배 곱해 출력해보자.
내 풀이)twice = int(input()) print(twice*2)
강의 풀이)
mul = int(input()) print( mul<<1 )
풀이가 틀리진 않았지만 이진수를 왼쪽으로 한 번씩 이동시켜주면 기존 값의 두 배가 된다.
ex) 5(101) => 10(1010), 7(111) => 14(1110)
- 정수 2개(a, b)를 입력받아 a를 2(b 제곱)배 곱한 값으로 출력해보자. ( a * 2(b 제곱) )
내 풀이)a, b = map(int, input().split()) print(a*2^b)
거듭제곱의 연산자는 ** 이므로 a*2**b로 계산을 해야한다.
강의 풀이)a, b = map(int,input().split()) print( a<<b )
2(b제곱)은 이진수로 b번 이동 시켜주는 것과 같기 때문에 a<<b로 계산이 된다.