관리 메뉴

도드넷

정보처리기능사 실기 시험 기출유형#8 - 보수 본문

창고/정보처리기능사[완]

정보처리기능사 실기 시험 기출유형#8 - 보수

도드! 2016. 5. 9. 12:03
반응형




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의보수에 저장하면 됩니다.










반응형
Comments