[이산수학] 1. 보수와 컴퓨팅 연산

tahn·2022년 12월 27일
0

이산수학

목록 보기
1/4
post-thumbnail

보수

  • 보충해주는 수
  • 어떤 수 a에 대한 n의 보수는 a와의 합이 n이 되는 수
  • ex) 10진수에서 1에 대한 10의 보수는 9, 2에대한 10의 보수는 8 …

1의 보수

어떤 2진수 a와의 합이 1(1(2))이 되는 수

2의 보수

어떤 2진수 a와의 합이 2(10(2))이 되는 수

💡 쉽게 정리하면 1의 보수에 1을 더해주면 2의 보수가 된다. 💡 주로 보수를 이야기 할 때는 2진수를 기준으로 이야기 한다.

워드 단위의 데이터 처리

주로 8비트(1바이트)를 기준으로 1워드(word)라고 부른다.

8비트(binary) 중 가장 앞에 있는 최상위 비트는 부호를 나타내는데 사용되어 부호비트라고 부른다.

나머지 7비트는 데이터비트로써, 데이터를 나타내는데 사용된다.

컴퓨터에서의 정수 데이터 표현

부호-절댓값 표현

  • 최상위 비트는 부호, 데이터 비트는 2진수로 절댓값으로 나타냄

부호-1의 보수 표현

  • 최상위 비트는 부호, 데이터 비트는 절댓값에 대한 1의 보수로 표현

부호-2의 보수 표현

  • 최상위비트는 부호, 데이터 비트는 절댓값에 대한 2의 보수로 표현
💡 2의 보수에서 음수의 경우 1의 보수에 +1 해주면 됨 (양수는 그대로)

컴퓨팅 시스템이 2의 보수를 사용하는 이유

초과되는 경우 1의 보수와 2의 보수간의 결과가 달라짐

1의 보수에선 0에대한 표현이 +0(0000)과 -0(1111) 두가지로 나뉨.

But, 2의 보수에선 1111은 마지막에 +1이 되어 10000이 되고, 가장 앞 1은 초과로 보아 사라짐.

또는 0000은 양수이기에 그대로 0000으로 남음

따라서 1111과 0000이 같은 수로 인식됨

그렇기에 컴퓨터 연산에서는 부호-2 보수 표현을 이용해 연산

추가로 2의 보수 연산 시, 다시 10진으로 바꿀 때 마찬가지로 - 1 해줘야 한다는걸 잊지 말것

profile
html 개발자

0개의 댓글