📚 /2025 CS STUDY

1. 소개


컴퓨터는 0과 1로 모든 정보를 표현하고 이해하는 이진법을 기준으로 작동한다. 이진법과 이진법 표현, 연산 등을 알아보자.



2. 이진법이란


이진법이란, 0과 1만 사용하여 숫자를 표현하는 체계를 의미한다. 컴퓨터 공학에서 0과 1을 비트(bit)라고 부르며, 이진수는 이러한 비트의 조합으로 표현된다. 우리가 저장하는 다양한 데이터들은 저장공간에 0과 1로 변환되어 저장되는 셈이다.

bit란 0과 1, 두가지 값만 가질 수 있는 측정 단위로 이진법으로 표현된 수에서 각각의 자릿수 하나를 비트라고 한다. 주로 데이터 처리, 저장, 전송 표현에 사용된다. byte란 8개의 bit가 모인 것으로 1 byte 로 표현할 수 있는 경우의 수는 2^8 = 256 개이다.



3. 이진수의 음수 표현


컴퓨터에서 숫자를 다룰 때 이진수는 필수적인 존재이다. 그런데 이 이진수로 양수뿐만 아니라 음수도 표현할 수 있다는 사실을 알고 있는가? “0과 1로만 이루어진 이진수로 어떻게 음수를 표현할 수 있을까?“라는 의문이 들 수 있다. 컴퓨터 세계에서 음수를 표현하는 다양한 방법과 그 원리를 알아보자.

컴퓨터는 사람처럼 “이건 양수, 저건 음수"라고 직관적으로 판단하지 못한다. 대신, 이진수를 음수로 해석할 수 있는 몇 가지 규칙(약속)을 만들어 두었다. 그중 가장 간단한 아이디어는 특정 비트를 “부호 비트"로 정하는 것이다.

부호 비트(Sign Bit)

맨 앞의 비트를 부호로 사용한다.

하지만 부호 비트를 사용하는 방식에는 문제가 있다. 음수와 양수를 동일하게 다루기 어렵다는 점이다. 이에 조금 더 똑똑한 방법으로 보수를 사용하는 방법이 등장했다. 컴퓨터는 기본적으로 덧셈만 할 수 있다. 그렇다면 뺄셈은 어떻게 할까? 바로 **보수(Complement)**라는 아이디어가 이 문제를 해결한다. 보수를 사용하면 덧셈만으로도 뺄셈을 구현할 수 있다. 보수에는 두 가지 주요 방식이 있다.

1의 보수

10100101

1의 보수는 간단하다. 이진수의 모든 비트를 반전시키는 방식이다. 음수를 표현할 때는 이렇게 반전된 값을 사용한다. 하지만 1의 보수 방식에는 +0-0이라는 두 가지 0이 존재한다는 문제가 있다. 이로 인해 연산이 비효율적이다.

2의 보수

10101011

2의 보수는 음수를 표현하는 가장 널리 쓰이는 방식이다. 방법은 간단하다. 우선 모든 비트를 반전(1의 보수)한다. 그 결과에 1을 더한다. 2의 보수는 뺄셈을 덧셈처럼 구현할 수 있다는 장점이 있다. 예를 들어 7 - 57 + (-5)로 처리할 수 있다. 이 덕분에 컴퓨터는 덧셈기 하나만으로도 뺄셈을 해결할 수 있다.

현대 컴퓨터는 거의 모두 2의 보수를 사용한다. 그 이유는 다음과 같다:

  1. 효율성: 뺄셈을 덧셈으로 구현할 수 있다.
  2. 일관성: +0-0 같은 애매한 경우가 없다.
  3. 연산의 단순화: 부호와 크기를 따로 고려할 필요 없이 같은 방식으로 처리할 수 있다.


4. 이진수의 연산


이진수 또한 십진수와 같이 덧셈과 뺄셈이 가능하다. 덧셈의 경우 우리가 익히 배웠듯이 각 자리의 덧셈 결과가 2가 될 경우 자리올림(carry)이 일어난다. 그렇다면 뺄셈은? 뺄샘을 한번 살펴보자. 컴퓨터는 뺄셈을 덧셈과 보수 개념을 통해 접근한다. 즉, 양수 - 양수 가 아니라 양수 + 음수 개념으로 인지하는 것이다. 이때 앞에서 살펴본것처럼 음수부를 표현하는 방식이 각기 다르다. (1의 보수, 2의 보수..)

a - b

2의 보수 방식의 장점

  1. 뺄셈을 덧셈으로 처리: 추가적인 뺄셈 회로가 필요 없으므로 하드웨어 구현이 간단해진다.
  2. 유일한 0: +0-0의 구분이 없어 연산의 일관성이 높다.
  3. 오버플로우 처리 용이: 자리올림을 무시해도 결과값이 정확히 계산된다.
  4. 부호와 크기의 통합: 음수와 양수를 동일한 방식으로 연산할 수 있다.


5. 실습 문제


실습 문제 1

프로그램이 실행되려면 반드시 (빈칸)에 저장되어 있어야 합니다 혼자 공부하는 컴퓨터 구조+운영체제: 실습 문제 3번 51p

프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 한다.

실습 문제 2

1101(2) 의 음수를 2의 보수 표현법으로 구해보세요 혼자 공부하는 컴퓨터 구조+운영체제: 실습 문제 3번 65p

1101(2)의 음수를 2의 보수로 표현하면 0011(2)이다. 이는 10진수로 -13을 나타낸다.



6. Reference