티스토리 뷰
반응형
num1 = 2 -> 0010
num2 = 3 -> 0011
& | AND | num1&num2 | 0010 |
| | OR | num1|num2 | 0011 |
^ | XOR(다를 때 1/같을 때 0) | num1^num2 | 0001 |
~ | not 연산자 | ~num1 | 1101 |
<< | 왼쪽이동 | num1<<2 | 1000 |
>> | 오른쪽이동 | num1>>2 | 0000 |
- 범위를 벗어나면 없어진다고 생각하자.(시스템에 따라 다르게 처리. 앞으로 돌아가진 않음)
- 내부적으로 비트로 연산을 하고 결과는 정수로 보여준다.
자주 사용하는 모음
N&1
- 양의 정수의 짝수 홀수 판별
- N%2(나머지 연산) 보다 효율이 좋다
- 연산 후에 마지막을 비트 값이 1인지 0인지로 판단한다.
1<<n
- 2^n 값이다. 2^n을 계산하는 것 보다 성능이 좋다
- power set(모든부분집합)인 공집합과 자기 자신을 포함한 모든 부분집합을 구할 때 사용한다.
i & (1 << j) / (i << j) & 1
- 어떤 숫자 i가 있을 때 j번째 비트의 값이 1인지 아닌지 판단.
- 계산 결과는 i의 j 번째 비트가 1인지 아닌지를 의미한다.
Q. 0과 1로 이루어진 1차 배열에서 7개의 byte를 묶어서 10진수로 출력하기
inp = input()
# 풀이 1
for i in range(0, len(inp), 7):
for j in range(i, i+7):
res = res * 2 + int(inp[j])
print(res, end= " ")
# 풀이 2
for i in range(0, len(inp), 7):
cnt = res = 0
j = i
while j < len(inp) and cnt < 7:
res = res * 2 + int(inp[j])
cnt += 1
j += 1
print(res, end= " ")
반응형
'알고리즘 > 알고리즘 종류' 카테고리의 다른 글
진수 (0) | 2020.05.16 |
---|---|
엔디안(Endianness) (0) | 2020.05.14 |
복잡도 분석 (0) | 2020.05.08 |
[python] 선택정렬(Selection Sort) & 삽입정렬(Insertion Sort) (0) | 2020.04.24 |
[python] BFS 응용 (0) | 2020.04.12 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- pandas
- read_csv
- error:0308010C:digital envelope routines::unsupported
- django
- Queue
- react
- logout
- vuejs
- useHistory 안됨
- 자료구조
- UserCreationForm
- nodejs
- next.config.js
- BFS
- DFS
- NextJS
- react autoFocus
- TensorFlow
- Vue
- useState
- 클라우데라
- Deque
- nextjs autoFocus
- login
- 자연어처리
- JavaScript
- mongoDB
- Python
- typescript
- Express
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함