도드넷
정보처리기능사 실기 시험 기출유형#8 - 보수 본문
Pretty Princessesesese! :3
정보처리기능사 실기 시험 기출유형#8 - 보수 알고리즘
1. 보수?
- 보수란 이진코드로 음수를 표현하는 방법으로 간단히 1은 0으로 0은 1로 바꾼다고 보면된다.
2. 1의 보수 알고리즘
- 위에서도 언급했듯, 1은 0으로 0은 1로 바꿔주면 되는데 간단하다.
- 이진수가 저장된 배열들이 주워졌을텐데 1-N 을 해주면 된다. 배열의 원소가 0이면 결과는 1이 될거고 1이면 0이 될것이다.
2. 2의 보수 알고리즘
- 정보처리기능사 실기 보수 알고리즘의 코어. 1의 보수는 쉬운데 2의 보수는 생각을 좀 해야한다.
- 2의 보수는 1의 보수에 +1 한것인데 말이 쉽지 +1 을 했을때 발생하는 "자리올림"을 배열에서
구현해야 한다.
- 2의 보수 알고리즘
0) 배열을 2개를 써야한다. 1의 보수를 위한 배열A1, 2의 보수를 저장할 배열 A2.
1) C 자리올림 변수를 설정하고 이를 1로 놓는다.
2) 1의 보수를 구해서 배열 A1에 저장한다.
3) 배열A1의 끝번호 원소에 +1을 해주고 같은 끝번호에 해당하는 A2에 값을 저장한다.
4) 위에서구한 A2값을 A2 MOD 2로 설정 해주면 자리가 올라가서 0이되는것을 구해줄 시있다.
5) C 자리올림수도 구해야 하는데, A1 x C를 해주면 된다. A1이 1이면 자리올림을 해야하고 A1이 0이면 자리올림수는 0이되서 자리올림은 일어나지 않는다.
3. 2의 보수 쉽게 구하기
- 100100110011 이라는 이진수가 있다고 합시다. 이 이진수의 2의 보수를 쉽게 구하는 방법이 있는데 다음과 같습니다. 일단 맨 오른쪽부터 시작해서 "1"이 등장하기 전까지 그냥 그대로 씁니다 만약 1이 등장하시면 그 다음부터는 전부 1은 0으로 0은 1로 반대로 바꿔줍니다. 위의 이진수는 처음부터 1이 나왔으므로 011011001101 이 될겁니다.
100100110011 재대로 1의 보수취하고 +1 구해보면
011011001100 인데 여기에 +1 해주면되므로 011011001101 딱 나오네요.
알고리즘으로 구연하는 방법은 배열입력받고 오른쪽끝 즉 맨뒤에서 부터 시작해야하니까 배열 인덱스를 최대치로 놓고 시작하고 1인지 검사해서 아니면 2의보수를 저장할 배열에 그대로 저장하고 1이 등장하면 해당 배열 저장후, 1-N 을 해서 2의보수에 저장하면 됩니다.
'창고 > 정보처리기능사[완]' 카테고리의 다른 글
정보처리기능사 필기같은 실기#1 - 데이터 베이스 (0) | 2016.05.10 |
---|---|
정보처리기능사 실기 기출유형#9 - 그레이코드 알고리즘 (0) | 2016.05.10 |
정보처리기능사 실기 기출문제 유형#7 - 가까운 수 알고리즘! (0) | 2016.05.09 |
정보처리기능사 알고리즘 기출유형#6 - 최대값 최소값 (0) | 2016.05.09 |
정보처리기능사 실기 요점정리#5 - 진법 변환 (0) | 2016.05.08 |