컴퓨터 구조(2) - 0과 1

GwanMtCat·2023년 5월 8일
0
  • 컴퓨터는 디지털 형식의 전기 신호를 사용하기 때문에 모든 정보를 ‘0’과 ‘1’로만 표현할 수 있다. 1과 0을 어떻게 이해하고 인식하는 걸까?

  • 컴퓨터가 표현하는 최소 정보단위를 비트(bit)라고 한다. 1비트로 0과 1을 표현할 수 있다.

    • 1비트는 2개, 2비트는 4개, 3비트는 8개의 정보를 표현할 수 있다. 즉 이진법
  • 1bit로는 정보를 나타내기 위해서는 터무니없이 부족하기 때문에 8개 bit인 = 1바이트(byte)로 한개의 문자를 나타낼 수 있다.(영어의 경우, 한글의 2바이트)


이진법(Binary)

  • 수학에서 0과 1만으로 모든 숫자를 표현하는 방법

  • 음수의 경우, 2의 보수를 구해 값을 음수로 표현할 수 있다.

    • 어떤 수를 그보다 큰 2의 n승에서 뺀 값을 의미
    • 11(2) 의 2의 보수는 100(2)에서 11(2)를 뺀 01(2)
    • 제일 쉬운 방법은 모든 0과 1을 뒤집고 여기에 1을 더하면 된다.
  • 실제로 이진수만 봐서는 이게 음수인지 양수인지 알기 어려운데 컴퓨터 내부에서 구분하기 위해 플래그 레지스터 라는 것을 사용한다고 한다.

  • 이진수 8를 표기하면 1000(2)으로 수학적 혹은 0b1000 로 코드상 표기하기도 한다.

십육진법(Hexadecimal)

  • 데이터를 표현할 때 이진법 이외에 사용하는 방법, 이진법이 0과 1만으로 숫자를 표현하다 보니 숫자의 길이가 너무 길어진다는 단점이 있어 사용

  • 0 ~ 9, 10부터는 A부터 F까지 사용한다. (A=10, B=11 ...), 15를 넘어가는 시점에 자리 올림하여 수를 표현한다.

  • 십육진수 15를 표기하면 15(16)으로 수학적 혹은 0x15 로 코드상 표기하기도 한다.

2진수를 16진수로 변환하기

  • 이진수 4개씩 끊어, 끊어 준 4개의 숫자를 하나의 십육진수로 변환하여 그대로 이어붙이면 된다.
  • 11010101(2) 라면 1101(2) -> D(16), 0101(2) -> 5(16) 이므로 D5(16)으로 표현 하면 된다.

16진수를 2진수로 변환하기

  • 16진수를 이루는 숫자 하나를 이진수로 표현하려면 4비트가 필요하다.
  • 16진수 한 글 자를 4비트의 이진수로 간주하여 각 글자를 따로 계산하고 이어붙이면 된다.
  • 1A2B(16)이라면 0001101000101011(2) 가 된다.
    • 1 ->0001(2)
    • A ->1010(2)
    • 2 ->0010(2)
    • B ->1011(2)

10진수를 2진수로 변환하기


10진수를 16진수로 변환하기


3진법을 컴퓨터의 정보 표현 단위로 사용하면 안될까?

  • 그러면 정보 표현 단위가 넓어지니 훨씬 편할 것 같은데..?
  • 찾아보니 비용문제가 상당히 크다고 한다. 또한 다른분이 이에 대해서 기차 철도가 좋은 예 입니다. 철로 폭을 더 넓게 만들면 기차도 더 옆으로 커지고 수용인원을 더 늘릴수있잖습니까? 근데 이미 맨 처음 만들때의 폭으로 전국을 다 깔아놨단 말이죠... 라고 표현하니 한번에 이해가 되었다.

0개의 댓글