📚 출처: 강민철 지음, 혼자 공부하는 컴퓨터구조 + 운영체제

📊 정보 단위

🔢 비트(Bit)

  • 컴퓨터가 이해하는 가장 작은 단위 = 비트(bit)
  • 1bit에 0 또는 1이 올 수 있음
  • 1bit = 2가지의 정보 표현 가능

📈 비트 확장

  • 2bit = 2가지 * 2가지 = 4가지의 정보 표현 가능
  • n비트 -> $2^n$개의 정보 표현 가능

📏 정보 단위 표

단위 크기
1바이트(1byte) = 8 bit
1킬로바이트(1KB) = 1,000 byte
1메가바이트(1MB) = 1,000 KB
1기가바이트(1GB) = 1,000 MB
1테라바이트(1TB) = 1,000 GB

🔢 이진법 (Binary)

📝 이진법이란?

0과 1만으로 모든 숫자를 표현하는 방법

💡 참고: 우리가 일반적으로 사용하는 수는 십진수로 9를 넘어가는 시점에서 10으로 넘어가는 자리올림이 발생함!!

📊 십진수 <-> 이진수 변환

십진수 이진수
1 1
2 1 0
3 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
8 1 0 0 0

🔄 이진수 계산 원리

핵심 규칙: 십진수의 숫자가 1씩 커질 때마다 이진수의 가장 마지막 자리를 올림

📋 단계별 설명

1️⃣ 2(10)의 이진수

  • 1(10) = 1(2)
  • 2(10)는 이진수(1(2))의 마지막 자리인 1에서 올림
  • 1을 올림하면 0이 되고 다음 자리수를 올려줌
  • 결과: 마지막자리 0, 그 다음앞에 1 -> “10(2)

2️⃣ 3(10)의 이진수

  • 2(10) = 10(2)
  • 이진수(10(2))의 오른쪽 마지막 자리인 0을 올림하면 0은 1이 됨
  • 결과: 1 0 -> 1 1 -> “11(2)

3️⃣ 4(10)의 이진수

  • 3(10) = 11(2)
  • 이진수(11(2))의 오른쪽 마지막 자리인 1에서 올림을 해야 함
  • 마지막 자리 1에서 올림 -> 마지막 자리는 0
  • 그 다음자리 1에 올림을 해줌 -> 그 다음자리 1을 올림하면 0
  • 그 다음자리 올림
  • 결과: “100(2)

➖ 음수 표현

🔧 2의 보수법

📖 2의 보수란?

  • 사전적 의미: 어떤 수를 그보다 큰 $2^n$에서 뺀 값
  • 실용적 방법: 모든 0과 1을 뒤집고 거기에 1을 더한 값

🔄 2의 보수 구하는 방법

예시: 11(2)의 2의 보수

  1. 모든 0과 1을 뒤집는다 -> 00(2)
  2. 거기에 1을 더한다 -> 01(2)

⚠️ 문제점과 해결책

문제: 컴퓨터가 음수인지 양수인지 구별하기 어려움

해결책: 컴퓨터 내부에서는 플래그(flag)를 사용

  • 이해하기 쉽게 말하면 부가정보라고 생각하면 됨

🔟 십육진법 (Hexadecimal)

📝 십육진법이란?

수가 15를 넘어가는 시점에서 자리 올림을 하는 숫자 표현 방식

🔢 십육진법 특징

  • 16진수를 이루는 숫자 하나를 이진수로 표현하려면 4비트가 필요
  • 이유: $2^4 = 16$이기 때문!

📊 십진수<-> 십육진수 변환표

십진수 0 1 2 10 11 15 16 17
십육진수 0 1 2 A B F 10 11

🤔 왜 십육진수를 사용할까?

이진수 <-> 십육진수 사이의 변환이 이진수 <-> 십진수 사이의 변환보다 훨씬 쉽기 때문

🔄 변환 방법

1️⃣ 십육진수 -> 이진수 변환

  • 십육진수를 이루고 있는 각 글자를 따로따로 이진수로 변환해서 붙이면 됨

예시: 1A2B(16)

  • 각각의 십육진수 1(16), A(16), 2(16), B(16)로 나누어서 이진수로 표현
  • 0001(2) , 1010(2), 0010(2), 1011(2)로 이진수로 각각 표현
  • 이걸 붙여서 0001101000101011(2)로 표현

2️⃣ 이진수 -> 십육진수 변환

  • 이진수를 네 개씩 끊어서 각각 십육진수로 변환한 뒤 붙이면 됨

예시: 11010101(2)

  • 1101(2) / 0101(2)로 나누기
  • 각각 십육진수로 바꾸기 -> D(16) / 5(16)
  • 이걸 붙여서 D5(16)로 표현

💭 느낀점

컴활, ADSP 등 데이터 관련 자격증을 딸 때 항상 나왔던 이진수, 십육진수 변환하는 방법이 항상 책에 있었는데 이 책을 보면서 더욱 쉽게 이해하고 접근할 수 있었음! 그리고 왜 이걸 배우는지 컴퓨터가 받아들이는 이진수를 기준으로 나와있어서 배우면서 내가 코딩하는 것이 대략적으로 어떠한 방식으로 컴퓨터가 인식하고 돌아갈지는 생각해보는 계기가 되었다.

Tags:

Categories:

Updated:

Leave a comment