🚀 bitcamp TIL (21.07.05)
TIL

🚀 bitcamp TIL (21.07.05)

📌 진수 표기법에 대하여


우리가 어릴 때 부터 지금까지 접해왔던 숫자 표기법은 10진수이다.
하지만 프로그래밍 세계에서는 이와 별개로 3개의 표현법이 더 있다.

1

  • 10진수는 항상 우리가 쓰던 방식이다.
  • 8진수는 0~7까지는 10진수랑 같으며, 8이 되면 올림해서 10으로 표기한다.
  • 2진수 컴퓨터가 받아들이는 디지털 신호이다. (0과 1로 표기)
  • 16진수는 2진수를 쉽게 표현하기 위해서 4bit씩 나누어서 표기한다.
    (09까지는 10진수와 같으며, 10부터는 af로 표기)

📌 값과 메모리


2

  1. 어떤 값이든 2진수로 표현할 수만 있다면
    전기적 신호와 자기적 신호로 바꿀 수 있다. (★★★★★)

    RAM/HDD에 저장할 수 있다.

  2. 2진수로 바꾸기 위한 규칙이 필요하다. (4가지)
    2의보수법을 사용한다.

📌 RAM과 HDD에 어떻게 저장되는가


3

📌 2진수의 값 표현 규칙(4가지)


  • Sign-Magnitude(부호 절대값)

    부호 절대값 방식은 가장 쉽게 생각할 수 있는 방식이다.
    최상위비트를 부호비트(0이면 양수, 1이면 음수)로 사용하고, 나머지는 절대값을 표현한다.

4

  • 위의 예를 보면 5-3을 수행하려고 한다.

    사람의 입장에서는 정말 쉽게 2라고 답변을 할 수 있지만, 안타깝게도 컴퓨터는 음수를 계산하지 못한다.
    위 방법은 대한 방법으로 나온것인데 몇가지 문제점들이 보인다.

    • 0을 +0과 -0으로 나누기가 애매하다.
    • 계산한 값이 다르게 나온다.

5

  • 그에 대한 대안으로 나온 것이 1의 보수법, 2의보수법이다.

    1의 보수는 어떤 수를 더해서 1이 되게끔 보충해주는 수를 말한다.

    1의 1의 보수는 0이다.

    0의 1의 보수는 1이다.

  • 결론적으로 1의보수는 2진수로 바꾼 수를 역으로 뒤집으면 된다.

  • 하지만 아직도 값이 일치하지 못한다.

    2의 보수는 어떤 수를 더해서 2가 되게끔 보충해주는 수를 말한다.

    2의 보수는 1의 보수에서 +1을 더한 값이다.

  • 위의 방법으로 답을 구하면 정확하게 일치한다.

  • 참고로 8bit를 넘어가는 수는 버린다.

6

Excess-K는 K로 지정된 값을 무조건 더하는 방법이다. 음수던 양수던 상관하지 않는다.

📌 결론

  • 1번과 4번의 방법은 부동소수점을 2진수로 표현할 때 지수부를 이 규칙에 따라 표현한다.
  • 현대의 대부분의 컴퓨터는 2의보수를 음수 표현 방법으로 사용한다.

'TIL' 카테고리의 다른 글

🚀 bitcamp TIL (21.07.07)  (0) 2021.07.07
🚀 bitcamp TIL (21.07.06)  (0) 2021.07.06
🚀 bitcamp TIL (21.07.02)  (0) 2021.07.04
🚀 bitcamp TIL (21.07.01)  (0) 2021.07.01
🚀 bitcamp TIL (21.06.28 ~ 21.06.30)  (0) 2021.07.01