컴퓨터가 이해하는 숫자는 우리가 일상에서 사용하는 숫자와 다릅니다. 우리는 일반적으로 10진수(Decimal)를 사용하지만, 컴퓨터는 2진수(Binary)로 데이터를 처리합니다. 이번 글에서는 2진수와 10진수 개념을 알아보고, 변환 방법과 음수 표현 방식까지 살펴보겠습니다.
1. 2진수(binary)란?
- 2진수는 '0'과 '1'의 두 가지 숫자로 이루어진 수 체계입니다. 컴퓨터 내부에서는 전압이 켜짐(1)과 꺼짐(0)으로 데이터를 저장하고 처리하기 때문에, 2진수는 컴퓨터에서 기본적으로 사용하는 숫자 체계입니다. 우리가 사용하는 텍스트, 이미지, 소리 등의 모든 데이터는 결국 2진수로 변환되어 저장되고 연산되는 것입니다.
- 2진수는 지수 표현법을 사용하여, 각 자리의 값이 2의 거듭제곱 형태로 나타납니다.
2. 10진수(decimal)란?
- 10진수는 우리가 일반적으로 일상에서 사용하는 숫자 체계입니다. 0부터 9까지 총 10개의 숫자로 구성되며, 자리올림을 통해 큰 수를 표현합니다. 예를 들어, 9 다음에는 10이 오고, 99 다음에는 100이 오듯이, 각 자리의 값은 10의 거듭제곱을 기반으로 구성됩니다.
- 컴퓨터는 기본적으로 2진수를 사용하지만, 우리가 사용하는 대부분의 숫자는 10진수로 표현됩니다. 따라서, 10진수와 2진수 간의 변환 방법을 익히는 것이 중요합니다.
3. 2진수-10진수 변환 방법
1) 2진수를 10진수로 변환하는 방법
- 2진수를 10진수로 변환하려면 각 자리의 숫자에 2의 거듭제곱을 곱한 후 더해주면 됩니다.
- ex) 1101을 10진수로 변환해 주세요.
1101 (2진수)
= 2³×1 + 2²×1 + 2¹×0 + 2⁰×1
= 13 (10진수)
- 이와 같이 각 자리수를 2의 거듭제곱으로 변환한 후, 각 자리의 2진수 값을 곱하는 방식으로 쉽게 변환할 수 있습니다.
2) 10진수를 2진수로 변환하는 방법
- 정수인 10진수를 2진수로 변환하려면, 10진수를 2로 나누면서 나머지를 기록하고, 마지막에 나머지를 역순으로 정렬하면 됩니다.
- ex) 13을 2진수로 변환해 주세요.
- 화살표 방향으로 계산하면 1101이라는 2진수 값이 나오는 것을 알 수 있습니다.
반응형
4. 2진수의 음수 표현 방법
- 컴퓨터는 정수뿐만 아니라 음수도 처리해야 합니다. 하지만 2진수에는 '-' 기호가 없기 때문에 특정 규칙을 사용하여 음수를 표현해야 합니다. 대표적인 방법으로는 부호화 절댓값(Sign-Magnitude), 1의 보수(1's Complement), 2의 보수(2's Complement) 방법이 있습니다.
1) 부호화 절댓값(Sign-Magnitude)
- 기존의 양수의 비트를 반전시킨 후 나온 가장 첫 번째 비트가 부호 비트입니다.
- 부호 비트는 (총 32개의 비트 중) 첫 번째 비트, 즉 가장 왼쪽에 위치한 비트를 의미합니다. 부호 비트가 0이면 양수이고, 1이면 음수를 나타냅니다.
- 예를 들어, 13을 부호화 절댓값으로 표현하면 다음과 같습니다.
+5 = 00001101
-5 = 10001101
- 하지만 이 방식은 0을 두 가지(‘00000000’과 ‘10000000’)로 표현하는 문제가 있으며, 연산 과정에서도 복잡성이 증가하는 단점이 있습니다.
2) 1의 보수(1's Complement)
- 부호화 절댓값에서 부호 비트를 제외한 나머지의 비트값을 반대로 표현하는 방법입니다.
- 즉 모든 비트를 반전(0 → 1, 1 → 0)하여 음수를 표현하는 방법입니다.
- 13의 1의 보수를 표현하면 다음과 같습니다.
a = 13 | 0 | 1 | 1 | 0 | 1 |
a의 음수 | 1 (부호화 절댓값) | 1 | 1 | 0 | 1 |
1의 보수 | 1 | 0 | 0 | 1 | 0 |
13 → 01101
-13 → 10010 (1의 보수)
3) 2의 보수(2's Complement)
- 2의 보수는 1의 보수 방식에 1을 추가로 더하는 방법입니다. 이 방식은 0을 유일하게 표현할 수 있으며, 연산이 간단해지는 장점이 있습니다.
- 13의 2의 보수를 구하는 과정은 다음과 같습니다.
a = 13 | 0 | 1 | 1 | 0 | 1 |
a의 음수 | 1 (부호화 절댓값) | 1 | 1 | 0 | 1 |
1의 보수 | 1 | 0 | 0 | 1 | 0 |
(+1) | |||||
2의 보수 | 1 | 0 | 0 | 1 | 1 |
13 → 01101
1의 보수 → 10010
2의 보수 → 10011 (1을 더함)
- 따라서, -13의 2의 보수 표현은 '10011'이 됩니다.
- 현재 컴퓨터는 대부분 2의 보수 방식을 사용하여 음수를 표현합니다. 덧셈과 뺄셈 연산을 동일한 방식으로 수행할 수 있어 계산이 간단해지기 때문입니다.
이번 글에서는 2진수와 10진수의 개념, 변환 방법, 그리고 2진수의 음수 표현 방식까지 자세히 살펴보았습니다. 2진수와 10진수 간의 변환법을 이해하면, 컴퓨터 내부에서 숫자가 어떻게 처리되는지 쉽게 이해할 수 있습니다.
파이썬을 비롯한 프로그래밍에서 비트 연산을 다룰 때에도 이 개념이 필수적이므로, 꾸준히 연습하면서 익혀두면 많은 도움이 될 것입니다. 감사합니다:-)
'데이터 분석' 카테고리의 다른 글
[통계 개념] 정규분포, 첨도와 왜도 알아보기 (0) | 2025.02.25 |
---|---|
프로그래머스 문제 풀이 - 두 수의 합 구하기 (0) | 2025.02.11 |
SQLD & SQLP 자격증 완벽 가이드 - 일정부터 합격 노하우까지 (1) | 2025.01.20 |
2025년 ADsP & ADP 자격증 완벽 가이드 - 시험 일정부터 합격 노하우까지 (0) | 2025.01.19 |
2025년 빅데이터 분석기사 완벽 가이드! 시험 일정 및 시험 과목, 합격 기준 등 (0) | 2025.01.18 |