본문 바로가기
컴퓨터 구조

컴퓨터 구조 2주차(1)

by 몰라몰라개복치 2020. 4. 16.

[컴퓨터 구조 WEEK2-1]27기 김수빈_문제.docx
0.03MB
[컴퓨터 구조 WEEK2-1]27기 김수빈_정답.docx
0.01MB

 

 

컴퓨터 정보의 표현

 

<컴퓨터 저장 단위>

(1). 비트

- 컴퓨터 정보 표현의 기초 단위

- 2진법에서 데이터를 표현하는 단위 0 or 1

 

(2). 바이트

- 비트들도 구성된 정보 표현 단위.

- 8bit = 1byte

 

(3). 워드

- 바이트들로 구성된 정보 표현 단위

- 1word = 2byte or 4byte

 

 

<진법 변환>

10진법 

- 인간이 사용하는 수의 체계

- 0~9를 이용하여 수를 표현

 

** 2진법

- 컴퓨터에서 사용하는 수의 체계

- 0,1을 이용하여 수를 표현

 

16진법 

- 0~9, A~F를 이용하여 수를 표현

 

 

 

 

 

자주 쓰이므로 외워둘 것

 

 

 

 

 

 

>>부호 없는 2진 정수 표현

 

(1). 10진수를 부호가 없는 2진수로 변환하는 법

 

10진수의 값을 2로 연속해서 나눠서 획득되는 나머지 값을 이용해 부호 없는 2진수로 변환

 

(53)10 = (110101)2

 

(2). 부호가 없는 2진수를 10진수로 변환

ex) 53=2^5+2^4+2^2+1=32+16+4+1

 

 

>> 부호 있는 2진 정수 표현

  • 최상위 비트: 부호 비트 (0:양수, 1:음수)
  • 부호화 크기 표현 
  • 1의 보수 표현 
  • 2의 보수 표현 

(1) 부호화 크기 표현

n비트로 구성된 2진수

최상위 비트: 부호 비트(0: 양수, 1: 음수)

나머지 n-1개의 비트들: 수의 절대 크기

부호화 크기 표현을 통해 n비트 데이터의 표현할 수 있는 수의 범위

-{2^(n-1)-1} ~ 2^(n-1)-1

 

ex) (+9)10=(0 0001001)2      <-->        (-9)10=(1 0001001)2

     (+0)10=(0 0000000)2      <-->        (-0)10=(1 0000000)2

 

 

하지만, 이 방법으로 음수를 표현하면 +0과 -0이 따로 존재

 

 

(2) 보수를 이용한 표현

최상위 비트: 부호 비트

1의 보수 표현: 부호 없는 2진 정수의 모든 비트를 반전+부호 비트

ex) (+9)10=(0 0001001)2  ==> (-9)10=(1 1110110)2  [1의 보수]

 

1의 보수를 이용해 n비트 데이터의 표현할 수 있는 수의 범위

-{2^(n-1)-1} ~ 2^(n-1)-1

 

하지만 1의 보수법은 부호 비트와 절댓값 방법과 같이 +0과 -0이 따로 존재하는 문제점을 가짐.

 

2의 보수 표현: 1의 보수의 결과값에 1을 더함

모두 두 개의 0을 가지는 문제점(+0과 -0)을 해결하기 위해 고안

 

ex) (-9)10=(1 1110110)2  [1의 보수] ==>  (-9)10=(1 1110111)2  [2의 보수]

 

 

이 방법을 사용하면 -0은 2의 보수를 구하는 과정에서 최상위 비트를 초과한 오버플로우가 발생하여 +0이 됩니다.

따라서 2의 보수법에서는 단 하나의 0만이 존재하게 됩니다.

이 때문에 현재 대부분의 시스템에서는 모두 2의 보수법으로 음수를 표현하고 있습니다.

 

 

 

+오버플로우란?

2의 보수 방식에서의 오버플로우

- n 비트 데이터에 대한 연산 결과를 n 비트로 나타낼 수 없을 때

- 더하는 두 수의 부호가 같은 경우

 

2의 보수를 이용해 n비트 데이터의 표현할 수 있는 수의 범위:

-{2^(n-1)} ~ 2^(n-1)-1

 

 

 

ex) 부호 있는 8비트의 이진수의 표현을 생각해 보면

부호화 크기 표현: -(2^7-1)~(2^7-1)

1의 보수: -(2^7-1)~(2^7-1)

2의 보수: -(2^7)~(2^7-1)

 

 

 

 

2진수의 논리 연산 

 

(1) 기본 논리 연산

 

AND 연산: 모든 입력값이 모두 1인경우에만 결과값이 1이 되고, 그 외의 경우는 결과값이 0이됨

OR 연산: 모든 입력값중 하나만 1이면, 결과값이 1이 되고 두 입력값이 모두 0인 경우에는 결과값이 0이됨

XOR 연산: 모든 입력값이 모두 동일한 경우에는 결과값이 0이되고, 그 이외의 경우에는 결과값이 1이됨

NOT 연산: 주어진 입력값의 반대값이 결과값이 됨

 

 

(2) 응용 논리 연산

 

Selective-set(선택적 세트) 연산

선택된 특정 비트를 1로 세트시키는 연산

예제: 입력값 A의 하위 4비트 모두를 1로 만듬

 

 

 

Selective-complement(선택적 보수) 연산

선택된 특정 비트를 1의 보수로 변경하는 (비트 반전하는) 연산

예제: 입력값 A의 하위 4비트 모두를 비트 반전함

 

Mask(마스크) 연산 

선택된 특정 비트들을 0으로 만드는 연산

예제: 입력값 A의 상위 4비트 모두를 0으로 만듬

 

Insert(삽입) 연산

입력값내의 특정 위치에 새로운 비트값들을 삽입하는 연산

예제: 입력값 A의 하위 4비트에 1100을 삽입함

 

 

Compare(비교) 연산

두 입력값을 비교하는 연산

예제: 입력값 A와 B의 비트들을 비교해서, 같으면 0을 출력하고 다르면 1을 출력

 

 

 

Circular shift(순환 이동)

최상위 혹은 최하위에 있는 비트가 반대편 끝에 있는 비트 위치로 이동해서 비트가 회전하는 이동

 

순환 좌측 이동

 

 

 

순환 우측 이동

 

 

 

 

Arithmetic shift(산술적 이동)

부호비트는 유지하고, 수의 크기를 나타내는 비트들만 이동

산술적 좌측 이동

D4 (불변), D3 ← D2, D2 ← D1, D1 ← 0
산술적 우측 이동 

D4 (불변), D4 → D3 , D3 → D2, D2 →D1 

'컴퓨터 구조' 카테고리의 다른 글

컴퓨터 구조 4주차  (0) 2020.05.28
컴퓨터 구조 3주차(2)  (0) 2020.05.23
컴퓨터 구조 3주차(1)  (0) 2020.05.23
컴퓨터 구조 2주차(2)  (0) 2020.04.16
컴퓨터 구조 1주차  (0) 2020.04.12