posted by REDFORCE 2017. 9. 4. 15:54

이번 글에서는 Shift 연산을 이용한 방법에 대해서 적도록 하겠습니다.


보통 CPU에서 나눗셈 연산 ( ' / ' )을 사용하는 것은 속도가 엄청 느린 연산입니다.

(컴퓨터는 덧셈밖에 모르는 바보라서...)





따라서, 나눗셈 작업을 많이 호출 하는 경우 그 만큼 소모되는 시간적 자원이 가장 많다는 뜻이기도 합니다.


어쩔수 없는 경우는 나눗셈을 사용하는 것이 지당하지만, 가능한 경우라면 Shift 연산을 이용하는 방법도 있습니다.


예) 3451을 100으로 나눈 몫을 구할 때

몫 : 34

나머지 :51 


이라는 점을 누구나 쉽게 바로 암산할 수 있습니다.


여기서 100으로 나누는 경우 일/십의 자리수는 무시하고 앞의 두자리 3400을 간단히 100으로 나눠버린 값으로 몫이 나올 거라는 것을 추론할 수 있을 텐데요.


이진수에서도 마찬가지로 간단히 뒷자리는 무시하고 앞자리만 계산을 하면 되는데요.

예를 들어서 1101 1100 을 1000 으로 나눈 몫은

뒤 3자리를 무시하고 나온 11011 이 됩니다.


이 방법을 잘 살펴보면, 위와 같이 1000 으로 나누는 경우

원래 수에서 오른쪽으로 3칸 Shift를 해버리면 11011이 나온 다는 것을 알 수 있습니다.


아래 사진은 Shift 연산을 이용한 예제 입니다.



posted by REDFORCE 2017. 6. 14. 15:05

예전에 공부하면서 만들어보았던


상점과 인벤토리(콘솔) 입니다.




정말 추억이 새록새록...(그러나 관심은 짤방에만 있다...)



'Programming > C++' 카테고리의 다른 글

[C++]바이트에서 1인 비트의 개수 세기  (0) 2017.09.15
[C++]나눗셈을 피해서 연산하자  (0) 2017.09.04
[C++]High/low/Seven  (0) 2017.06.14
[C++]간단한 배팅 도박게임  (0) 2017.06.14
[C++]간단한 숫자 퍼즐 게임  (0) 2017.06.14
posted by REDFORCE 2017. 6. 14. 14:06

간단한 하이로우세븐 콘솔 게임입니다.


하이로우세븐 게임 룰 자체는 설명안하겠습니다.



코드도 그렇게 어려운건 없어서...


단순하게 랜덤하게 나온 값을 토대로 조건문으로 검사하는 것뿐...


(어딘가에 좋은 짤방이 없나...)



'Programming > C++' 카테고리의 다른 글

[C++]나눗셈을 피해서 연산하자  (0) 2017.09.04
[C++]상점/인벤토리 만들기(콘솔)  (0) 2017.06.14
[C++]간단한 배팅 도박게임  (0) 2017.06.14
[C++]간단한 숫자 퍼즐 게임  (0) 2017.06.14
[C++]간단한 별찍기  (0) 2017.06.14
posted by REDFORCE 2017. 6. 14. 14:02


콘솔기반의 간단한


배팅을 이용한 도박 게임입니다.



상대방의 카드보다 값이 높으면 졌었는지 이겼는지 기억이 안나네요.


하하....(땀땀)...



'Programming > C++' 카테고리의 다른 글

[C++]상점/인벤토리 만들기(콘솔)  (0) 2017.06.14
[C++]High/low/Seven  (0) 2017.06.14
[C++]간단한 숫자 퍼즐 게임  (0) 2017.06.14
[C++]간단한 별찍기  (0) 2017.06.14
[C++]Console Bingo(빙고)  (1) 2017.06.14
posted by REDFORCE 2017. 6. 14. 13:57

간단한 숫자 퍼즐 게임입니다.


숫자를 ☆자리와 스왑해서 모든 숫자를

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


로 맞추면 이기는 퍼즐 형식입니다.

 



'Programming > C++' 카테고리의 다른 글

[C++]High/low/Seven  (0) 2017.06.14
[C++]간단한 배팅 도박게임  (0) 2017.06.14
[C++]간단한 별찍기  (0) 2017.06.14
[C++]Console Bingo(빙고)  (1) 2017.06.14
[C++]주민등록번호 생성기  (0) 2017.06.14
posted by REDFORCE 2017. 6. 14. 13:52



좌에서 우로 우에서 좌로 하나씩 증가/감소 하면서 별 찍는 간단한 코드 입니다.


요즘 뭔가 어디서쓸만한 짤방없나 계속 찾아보고있는데


마음에드는게 없네요...(시무룩)



'Programming > C++' 카테고리의 다른 글

[C++]간단한 배팅 도박게임  (0) 2017.06.14
[C++]간단한 숫자 퍼즐 게임  (0) 2017.06.14
[C++]Console Bingo(빙고)  (1) 2017.06.14
[C++]주민등록번호 생성기  (0) 2017.06.14
[C++]문자열 거꾸로 만들기  (0) 2017.06.14
posted by REDFORCE 2017. 6. 14. 13:30



간단한 콘솔 기반 빙고 게임입니다.


셔플을 활용해서 숫자를 섞어서 넣고 출력하는게 포인트였던..


= _=지금보면 새록새록한 추억이군요.



'Programming > C++' 카테고리의 다른 글

[C++]간단한 숫자 퍼즐 게임  (0) 2017.06.14
[C++]간단한 별찍기  (0) 2017.06.14
[C++]주민등록번호 생성기  (0) 2017.06.14
[C++]문자열 거꾸로 만들기  (0) 2017.06.14
[C++]간단한 strlen, strcmp, strcat, strcpy, strtok  (0) 2017.06.14
posted by REDFORCE 2017. 6. 14. 12:35


간단히 생년월일과 성별을 입력받으면 주민등록번호를 생성해주는 코드 입니다.



'Programming > C++' 카테고리의 다른 글

[C++]간단한 별찍기  (0) 2017.06.14
[C++]Console Bingo(빙고)  (1) 2017.06.14
[C++]문자열 거꾸로 만들기  (0) 2017.06.14
[C++]간단한 strlen, strcmp, strcat, strcpy, strtok  (0) 2017.06.14
[C++]간단한 야구 게임  (0) 2017.06.14
posted by REDFORCE 2017. 6. 14. 11:54


문자열 거꾸로 만드는 코드입니다.


그냥...단순하게 문자열 사이즈 반띵해서 앞뒤로 바꿔주면 끝.



posted by REDFORCE 2017. 6. 14. 11:51

strlen, strcmp, strcat, strcpy, strtok 사용하는 것에 대해


간단히 적어둔 코드입니다.