TIL

190417_TIL(컴퓨터공학기초,32bit 와 64bit, 기수법, 정수(Integer)의 표현, 보수, 산술연산)

4월 17일(수)

32bit 컴퓨터와 64bit 컴퓨터를 나누는 기준

  • 첫번째 기준 : cpu와 RAM(main memory) 사이를 연결하는 와이어의 갯수 —> bit 갯수 즉, 와이어가 8개이면 8비트

  • 두 번째 기준 : 메모리 주소값 - > digit(자릿수)이 32개, 베이스는 2진수 –> 32비트 컴퓨터

컴퓨터 메모리 기초

  • 메모리 주소는 우편주소와 유사하다.

  • 메모리에서는 1byte 하나당 메모리 주소를 하나 할당한다. 1byte == 8bit

  • 32비트 컴퓨터는 0 ~ 2^32 -1 메모리 주소를 할당할 수 있다. –> 계산하면 4g 정도 나옴. RAM이 4g면 충분 —> 이미 메모리 주소를 다 할당했기 때문에 더이상 할당할 주소가 없다.

기수법

  • 2진수(Binary), 10진수(Decimal), 16진수(Hexadecimal)를 알아둘 필요가 있다.
  • 2, 10 ,16 진수를 나누는 기준 : 한 자릿수에 표현할 수 있는 수의 개수
  • 16진수0~9 , 10 이후는 a ~ f 까지
  • 16진수 1개가 2진수 4개로 변환된다. ex) 16진수 8자리면 32bit 메모리 주소를 표현할 수 있다.

정수(Integer)의 표현

  • int는 system을 따라간다. 32bit컴퓨터에서 32bit4byte를 차지한다.
  • 자바스크립트는 모든 숫자가 실수형인 double(8byte)로 들어간다. –> cpu를 많이 잡아먹는다.
  • 1byte로 표현할 수 있는 정수의 범위

    -2^7 ~ 2^7 - 1

  • 양의 정수의 표현 : 부호비트가 0이다.

  • 음의 정수의 표현 : 부호비트가 1 이다. , 2의 보수로 저장한다.
  • 음의 정수를 2의 보수로 표현하는 이유
    • 2의 보수를 사용하지 않는다면 0000 00001000 0000이 모두 0을 표현한다.
      1. 1비트가 낭비된다.
      2. if문으로 비교 시 엉뚱한 결과가 나온다.
    • 컴퓨터는 가산기(adder) 즉, 덧셈만으로 뺄셈을 하는데 이 때 2의 보수의 역할이 중요하다.

보수

  • 보수란 쉽게 말해서 보충해 주는 수이다.
  • 10진수9의 보수9에서 어떤 수의 각 자릿수 수를 뺀 값 —> ex)269의 보수는 73
  • 10의 보수9의 보수에 1을 더한 값 —> ex)26의 9의 보수는 74
  • 2진수1의 보수10진수9의 보수와 같은 원리로 1에서 각 자릿수를 뺀 값이다. —> ex)10101의 보수0101, 그런데 결과를 유심히 살펴보면 각 자릿수 수의 10을 반전하면 1의 보수가 된다는 것을 알 수 있다.
  • 2진수2의 보수1의 보수1을 더한 값이다. ex) 1010—> 0110
  • 2의 보수가 중요한 이유는 컴퓨터가 음수를 표현할 때 2의 보수를 사용하기 때문이다.

Number 산술연산

  • 가산기(adder)만으로 덧셈, 나눗셈, 곱셈을 어떻게 할까?? —> 2의 보수와 shift register를 활용한다.
Share