![[컴퓨터구조] 0과 1로 숫자를 표현하는 방법](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FP6mLA%2FbtsNu6c1aFU%2FAAAAAAAAAAAAAAAAAAAAAGLJd1wY3ErhHQatjbi5YkiuJa7DwIoT_PZXkIWJWXrt%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DbeI7dso%252FSPJv73E5H80vtclCZkI%253D)
[컴퓨터구조] 0과 1로 숫자를 표현하는 방법🧠 CS/컴퓨터구조2025. 4. 22. 01:18
Table of Contents
정보 단위
비트 (bit)
- 컴퓨터가 이해하는 가장 작은 정보 단위
- binary digit의 줄임말로, 하나의 비트는 0 또는 1의 값을 가짐
- 일반적으로 n bit는 $ 2^n $ 가지의 정보 표현이 가능
바이트 (byte)
- 비트를 8개 묶은 단위 (1 byte = 8 bit)
- 컴퓨터에서 데이터를 처리하는 기본 단위
- 문자 하나(ex. 알파벳, 숫자, 특수기호 등)를 표현하는 데 일반적으로 1 byte 사용
기타
- 킬로바이트 (kB) : 바이트를 1,000개 묶은 단위 (1 kB = 1,000 byte)
- 메가바이트 (MB) : 킬로바이트를 1,000개 묶은 단위 (1 MB = 1,000 kB)
- 기가바이트 (GB) : 메가바이트를 1,000개 묶은 단위 (1 GB - 1,000 MB)
- 테라바이트 (TB) : 기가바이트를 1,000개 묶은 단위 (1 TB = 1,000 GB)
kB vs KiB의 차이
✅ kB (킬로바이트) : 국제 단위계(SI 단위)에 따라 1kB = 1,000 byte로 정의
✅ KiB (키비바이트) : 2진수 기준 단위로 1KiB = 1,024 byte ( $ 2^{10} $ )
➡️ 컴퓨터는 2진수 기반으로 동작하기 때문에 실제로는 1024 단위로 데이터를 처리하지만, 국제 표준은 10진수 기반이기 때문에 1 kB = 1,000 byte로 정의했고 혼동을 줄이기 위해 표기 방법을 구분한 것!
이진법 (Binary)
- 0과 1만을 이용하여 숫자를 표현하는 방식으로, 컴퓨터 내부에서 사용하는 가장 기본적인 표현 방식
- 표기 방식 : 수학적으로는 아래 첨자(ex. $ 1010_{(2)} $ )로 표현하며, 프로그래밍 언어에서는 숫자 앞에 접두어
0b
를 붙여 표현 (ex.0b1010
)
이진수의 음수 표현 (2의 보수)
- 컴퓨터에서 음수를 표현하기 위해 주로 2의 보수(two's complement)를 사용
- 2의 보수 : 어떤 수를 그보다 큰 $ 2^n $에서 뺀 값 (ex.
0b011
의 2의 보수 =0b100
-0b011
=0b001
) - 2의 보수 계산법 : 원래 이진수를 모두 반전 (1은 0으로, 0은 1로 반전) ➡️ 반전된 값에 1 더하기
- 2의 보수 : 어떤 수를 그보다 큰 $ 2^n $에서 뺀 값 (ex.
- 2의 보수로 반환된 값이 이진수를 의미하는지 이진수의 음수 표현인지 알 수 있는 방법이 없기 때문에 컴퓨터 내부에서는 양수인지 음수인지 구분하기 위해 플래그(flag)를 사용
2의 보수의 한계
- 이진수의 음수를 표현하기 위해 2의 보수를 취하는 방식은 널리 사용되는 방식이지만, 완벽한 방식은 아님
- 0 혹은 $ 2^n $ 형태의 이진수에 2의 보수를 취하면 원하는 음수 값을 얻을 수 없음
- n 비트로 표현 가능한 범위는 $ -2^{(n-1)} $ ~ $ 2^{(n-1)} - 1 $
십육진법 (Hexadecimal)
- 0 ~ 9와 A ~ F까지 총 16개의 기호를 사용하여 숫자를 표현하는 방법 ➡️ 15을 넘어가는 시점에서 자리 올림이 발생하는 숫자 표현 방식
- 이진수를 간단하게 표현할 수 있기 때문에 컴퓨터에서 자주 사용됨 ➡️ 이진수에서 십육진수로, 십육진수에서 이진수로 변환이 간단하기 때문에 사용됨 (변환 간단 + 가독성 향상)
- 표기 방법 : 수학적으로는 아래 첨자(ex. $ 1F_{(16)} $ )로 표현하며, 프로그래밍에서는 접두어
0x
를 붙여 표현 (ex.0x1F
)
이진수와 십육진수 상호 변환
십육진수를 이진수로 변환
- 십육진수 한 자리당 4 비트의 이진수로 표현 가능 ➡️ 각 자리를 4 비트의 이진수로 변환하여 그대로 이어 붙여서 변환
- ex.
0x3F
=0b00111111
이진수를 십육진수로 변환
- 이진수를 뒤에서부터 4자리씩 끊어 각 자리의 숫자를 십육진수로 변환 후 이어 붙여서 변환
- ex.
0b110101
=0b00110101
=0x35
십육진수가 중요한 이유
✅ 메모리 주소나 데이터 표현 등에서 긴 이진수를 다루기 쉽도록 십육진수를 많이 사용
✅ 사람이 보기 쉽고, 오류를 줄이는데 효과적
핵심 정리
- 비트는 0과 1로 표현할 수 있는 가장 작은 정보 단위이며, 바이트는 컴퓨터에서 데이터를 처리하는 기본 단위
- 이진법은 컴퓨터 내부에서 숫자를 표현하는 기본 방식이며, 음수는 2의 보수를 사용하여 표현
- 십육진법은 긴 이진수를 간단히 표현할 때 유용하며, 이진수와의 변환이 용이하여 컴퓨터에서 자주 사용
참고 자료
- 혼자 공부하는 컴퓨터 구조 + 운영체제 (강민철 | 한빛미디어)
혼자 공부하는 컴퓨터 구조+운영체제 | 강민철 - 교보문고
혼자 공부하는 컴퓨터 구조+운영체제 | 혼자 해도 충분합니다! 1:1 과외하듯 배우는 IT 지식 입문서 42명의 베타리더 검증으로, ‘함께 만든’ 입문자 맞춤형 도서이 책은 독학으로 컴퓨터 구조와
product.kyobobook.co.kr
'🧠 CS > 컴퓨터구조' 카테고리의 다른 글
[컴퓨터구조] 컴퓨터 구조의 핵심 정리 (0) | 2025.04.22 |
---|
@청월누리 :: DevKuk 개발 블로그
since 2025.01.27. ~ 개발자를 향해....🔥