[CS : 컴퓨터 구조] 데이터 : 02-1 0과 1로 숫자를 표현하는 방법
Computer Science/컴퓨터 구조

[CS : 컴퓨터 구조] 데이터 : 02-1 0과 1로 숫자를 표현하는 방법

02-1 0과 1로 숫자를 표현하는 방법

1) 정보단위

  • 비트(bit) : 0과 1을 표현하는 가장 작은 정보 단위
  • ex) 전구 : 켜짐 · 꺼짐
  • n비트로 2ⁿ가지의 저옵 표현 가능
  • 프로그램은 수많은 비트로 이루어져 있다. 다만 표현 시 비트보다 더 큰 다위를 사용한다.(ex 바이트, 메가바이트, 기가바이트, 테라바이트 ···)
더보기

1바이트(1byte) : 8비트(8bit)

1킬로바이트(1KB) : 1,000 바이트(1,000 byte)

1메가 바이트(1MB) : 1,000 킬로바이트(1,000 KB)

1기가 바이트(1GB) : 1,000 메가바이트(1,000 MB)

1테라 바이트(1TB) : 1,000 기가바이트(1,000 GB)

 

c.f) 이전 단위를 1024개씩 묶는 건 KiB, MiB, GiB ··· 등등 

2) 워드(word)

  • CPU가 한 번에 처리할 수 있는 정보의 크기 단위
  • 하프워드(half word) : 워드의 절반 크기
  • 풀워드(full word) : 워드크기
  • 더블 워드(double word) : 워드의 두 배 크기

3) 이진법(binary)

  • 0과 1로 수를 표현하는 방법
  • 숫자가 1을 넘어가는 시점에 자리올림
  • 우리가 일상적으로 사용하는 진법은 숫자가 9를 넘어갈 때 자리올림하는 십진법(decimal)

(위) 수학적표기방식, (아래) 코드에서 사용되는 표기방식

3-1) 0과 1로 음수 표현하기 : 2의 보수

  • 어떤 수를 그보다 큰 2ⁿ 에서 뺀 값

 

  • 모든 0과 1을 뒤집고 1 더한 값

  • CPU 내부의 플래그(flag) 레지스터를 통해 양수 · 음수를 구분한다.

4) 십육진법

  • 이진법으로는 숫자의 길이가 너무 길어진다.(십진수 32 == 이진수 100000) 그렇기 때문에 컴퓨터의 데이터를 표현할 때 십육진법도 많이 사용된다.(수가 15를 넘어가는 시점에 자리올림)

십육진법 자리올림과정
십육진수 표기법

  • 직접 코드에 써넣는 사례

  • 16진수 → 2진수 변환

  • 2진수 → 16진수 변환

※ 16진수를 쓰는 것은 2진수를 16진수로 변환하거나 16진수를 2진수로 변환하는 과정이 수월하기 때문일것이라고 추측하고 있다.

 

 

 

 

 

 

 

 

출처: 인프런-개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard