일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 반응형 웹
- 코드펜
- 터미널에서 angular project 생성
- 터미널 명령어
- 앵귤러 명령어
- 반응형 정사각형
- angular 터미널
- ck editor 사진
- 서버 뜻
- 프로토콜 뜻
- 정보처리기능사
- 글 에디터 넣는법
- ck editor 사진 넣는법
- 무료 에디터 사용법
- 에디터 사용법
- 코드펜 복사해도 안되는 이유
- 앵귤러 터미널 명령어
- 정보처리기능사 준비
- ck editor 이미지 업로드
- 프론트엔드 용어
- 코드펜 안되는 이유
- 서버란 무엇인가
- 정보처리기능사 따는법
- 프로토콜이란
- 코드펜 옮겨오는 법
- 에디터 api
- 정보처리기능사 필기
- CK Editor
- 정보처리기능사 필기 준비
- 서버의 의미
- Today
- Total
멋진 개발자가 되고 싶어
2. 왼쪽 시프트 그거 왜 하는 건데 (수치적 연산 왼쪽 shift) 본문
어디에 활용하는지
왜 알아야하는지 알지 못하면
도저히 외워지지 않는 병이 있다.
그래도 웬만하면 대충 넘어가려했는데
도대체 어쩌라고? 싶은 부분이 생겼다.
그건 바로
수치적 연산의 shift
본문의 내용은 이러했다.
02 수치적 연산
산술적 shift는 곱셈과 나눗셈 연산에 이용
1) 왼쪽 시프트
- 왼쪽으로 한 비트씩 이동
- n비트 왼쪽 시프트는 2의 n제곱 한것을 의미(n은 시프트 비트 수)
- 범람(overflow) : 밀려나간 비트가 1일 경우 발생
예시) 2의보수 11100111에 대해서 왼쪽으로 1bit 시프트
11100111
-> (1)1100111(0) ---- 맨 앞의 1 삭제, 맨 뒤의 0 채움
-> 11001110
[출처] 유튜브 영상 part 1-9 자료표현과 연산(3)
일단 내용은 이러한데
그래서 어쩌라고?
일단 가장 먼저 shift를 활용하는 이유에 대해서 궁금했다.
https://letitkang.tistory.com/113
검색해보니 일반적인 연산보다
비트연산을 활용하면 속도가 빨라진다는 사실을 알아냈다.
아하!
좀 더 생각해보니 그럴 것 같았다.
앞부분의 숫자를 지우고 뒤에 숫자를 채워주는 것만으로
곱셈된 값을 얻을 수 있으니 말이다.
그럼 그렇다고 치고
정말 왼쪽으로 한 칸 시프트를 한다해서
2배의 값을 얻을 수 있을까?
익숙한 10진수로 사실인지 확인해보았다.
다시 본문의 예시로 돌아가보자.
예시에서는 2의 보수 11100111을 왼쪽 시프트 한값을 구했다.
2의보수 11100111
-> 1의보수 11100110
-> 2진수 00011001
-> 10진수 25
이제 왼쪽 시프트 한 값인 11001110을 보자.
2의보수 11001110
-> 1의보수 11001101
-> 2진수 00110010
-> 10진수 50
50은 25의 두배다.
정말 한칸 왼쪽 시프트 하여
2의 1제곱, 즉 2배값을 구할 수 있었다.
와우 거짓말이 아니었다.
물론 거짓말일리 없겠지만
직접 증명해보는 과정에서 완벽하게 이해가 됐다.
덕분에 수치적 연산의 시프트의 원리는
절대 잊지 않게 된 거 같다.
뿌듯....(이것때문에 30분이상 시간쓴 건 비밀)
'자격증 시험 준비 > 정보처리기능사' 카테고리의 다른 글
1. 정보처리기능사 필기 준비 과정 (0) | 2022.08.10 |
---|---|
0. 내가 정보처리기능사 시험을 준비하는 이유 (0) | 2022.08.09 |