본문 바로가기
컴퓨터 일반

1. 컴퓨터 구조 - 자료의 표현

by 쬑께께 2026. 1. 21.

(2) 뺄셈

- 1의 보수 사용

1) 빼는 수를 1의 보수로 만들어 원래 수와 덧셈

2) 자리올림수가 있으면 최하위 비트에 올림수 더하기, 없으면 얻은 결과의 1의 보수 취해 '-' 부호 붙이기

EX) (110)₂ - (100)₂ = (010)₂

- 빼는 수 (100)₂의 1의 보수 구하기 => (011)₂

-11                   

   110

+ 011

-----------

  1001              * 자리 올림수: 제일 앞의 (1)₂, 결과값: (011)₂

- 자리 올림수 (1)₂를 제외한 결과값에 더하기: (011)₂ + (1)₂ = (010)₂

 

진법변환

- 양수의 표현방법: 부호비트에 0을 표시, 정수를 2진수로 변환해 정수부에 오른쪽을 기준으로 저장

EX) +23을 2바이트의 고정 소수점 데이터 형식으로 표현 (+ 부호 -> 부호비트 0)

       + 23 => 0 000 0000 0001 0111

- 음수의 표현방법

1) 부호 절대치 표현: - 부호- -> 부호비트 1, 정수부는 변경안함

EX) -23을 부호 절대치 표현

       - 23 => 1 000 0000 0001 0111

2) 1의 보수 표현: - 부호 => 부호비트 1, 정수부는 1의 보수로 변경

EX) -23을 1의 보수 표현

      - 23 => 1 111 1111 1110 1000

* 2의 보수: 1의 보수 + 1 (첫번째 묶음 19/30 참조)

 

- 부호 있는 8비트 2진수의 표현

  부호 절대치 부호 1의 보수 부호 2의 보수
+127 01111111 01111111 01111111
+1 00000001 00000001 00000001
+0 00000000 00000000 00000000
-0 10000000 11111111 X
-1 10000001 11111110 11111111
-127 11111111 10000000 10000001
-128 X X 10000000

* 부호 절대치와 부호 1의 보수 표현에는 0이 2( +0, -0) 존재

* 부호 2의 보수 표현은 0이 1개(+0)만 존재 -> 홀수값은 부호 절대치나 부호 1의 보수 표현보다 표현범위가 1 더 큼

 

고정 소수점 데이터 형식(fixed point data format)

- 소수점 위치가 항상 고정되어 있는 수

- 정수를 컴퓨터 내부에서 표현하는 형식, 고정 소수점 데이터 형식이란 소수점이 맨 오른쪽에 고정되어 있음을 가정한다.

- 양수 표현 시: 부호 절대치 방식만 사용

- 음수 표현 시: 부호 절대치, 1의 보수, 2의 보수 표현 방식 사용

- 소수점이 없는 정수 표현 형식: 2바이트(16비트), 4바이트(32비트) 형식 존재

- 부호 비트와 정수부로 구성 (정수부: 10진수를 2진수로 변환시켜 표현)

- 첫 번째 비트: 부호(sign) 비트로 양수면 0, 음수면 1로 표시

 

부동 소수점 데이터 형식(floating point data format)

- 컴퓨터 내부에서 소수점이 있는 실수 표현 시 사용하는 형식

- 부호 비트, 지수부, 가수부로 구성

- 부호 비트는 양수일 때 0, 음수일 때 1로 표시

- 지수부: 실제 지수 + 기준수(바이어스 상수), 8비트로 표현

- 가수부: 나머지 비트, 소수점 아래 부분(유효숫자) 표현

- 4바이트(32비트) 단정도 실수형, 8바이트(64비트) 배정도 실수형으로 구분

- 고정 소수점 데이터 형식보다 복잡 -> 연산속도 늦음

- 실수 표현 위해 지수부와 가수부로 분리시키는 정규화 과정 필요함

 

표현방식에 따라 저장되는 과정

EX) (-14.25)₁₀표현: 32비트 부동 소수점 표현(단정도, float)

1) 2진수로 변환   => (-14.25)₁₀ = (-1110.01)₂

2) 정규화 수행     => (-1110.01)₂ = (-1.11001)₂ X 2³

=> 가장 왼쪽에 있는 1만 남기고 소수점 뒤로 넘기기, 넘긴 숫자만큼 2ⁿ만큼 곱해줌

* 정규화: 소수점의 위치를 최대 유효숫자 1 뒤에 위치하게끔 하는 것

3) 부호비트: 양수면 0, 음수면 1로 표현   => 음수여서 1

4) 지수부: 지수값 + 바이어스 (지수값의 양수화)   => 지수부: (3 + 127)₁₀ = (10000010)₂

* 단정도 바이어스 값: 127, 배정밀도 바이어스 값: 1023 (고정)

5) 가수부: 정규화된 수에서 가장 왼쪽에 있는 1 생략하고 표현 

=> - (111001)에서 가장 왼쪽의 1 생략 -> -(11001) -> 나머지 가수부 0으로 채움

부호비트(1비트) 지수부(8비트) 가수부(23비트)
1 10000010 11001000000000000000000

 

10진 데이터 형식(decinmal data format)

- 고정 소수점 데이터를 표현하는 방법 중의 하나

- 10진수를 2진수로 변환하지 않고 10진수 상태로 표현하는 것

- 존 형식(zone format): 10진수 한자리를 8비트로 표현

- 팩 형식(pack format): 10진수 한 자리를 4비트로 표현

- 양수이면 1100(C), 음수이면 1101(D), 부호 없을 경우 1111(F)로 표현

 

(1) 존 형식 10진 데이터 형식 (=언팩)

- 10진수 한 자리를 8비트로 표현하는 방법

- 존 4비트와 숫자 4비트 사용

- 입출력 데이터로 사용

EX) 존 형식으로 +356 표현

*부호가 어디에 표시되는지 확인 필수!!

1111 0011 1111 0101 1100 0110
F 3 F 5 C 6

 

(21쪽)

1. 8421 코드 (4비트 BCD 코드)

- 2진수 4비트를 이용해 10진수 한 개의 값을 표현할 수 있음

- 각 자릿수의 가중치가 왼쪽부터 8,4,2,1의 값을 갖는 가중치 코드

 

2. 2421 코드

- 자기보수화의 특징을 갖고 있음

- 각 자릿수의 가중치가 왼쪽부터 2,4,2,1의 값을 갖는 가중치 코드

 

가중치 코드(weighted code): 그 위치에 따라 정해진 값을 갖는 코드

10진수 8421코드(BCD) 2421코드 5421코드 84-2-1코드 51111코드
0 0000 0000 0000 0000 00000
1 0001 0001 0001 0111 00001
2 0010 0010 0010 0110 00011
3 0011 0011 0011 0101 00111
4 0100 0100 0100 0100 01111
5 0101 1011 1000 1011 10000
6 0110 1100 1001 1010 11000
7 0111 1101 1010 1001 11100
8 1000 1110 1011 1000 11110
9 1001 1111 1100 1111 11111

* 2421코드, 84-2-1코드, 51111코드의 경우 4와 5 사이를 기준으로 서로 뒤집힌 값을 나타냄

 

비가중치 코드(non-weighted code)

- 2진수를 코드화했을 때 각각의 비트마다 일정한 크기의 값이 없는 코드를 의미

- 연산에는 부적합

(1) 3초과 코드(Excess - 3 code)

- 자기보수화의 특징 가지고 있음

- 8421코드에 3을 더한 것과 같은 결과 가짐

 

(2) 그레이 코드

- 데이터의 전송, 입출력장치, 아날로그 디지털 변환기(A/D 변환기) 및 주변 장치에 사용됨

 

오류 검출 코드: 데이터의 오류 발생 유무 검사 가능한 코드

(1) 패리티 비트(Parity bit)

- 원래 데이터 비트에 오류 발생 유무를 검사하기 위해 패리티 비트 추가

- 패리티 비트는 1비트 에러만 검출 가능 (2비트 이상의 에러 검출 불가)

- 홀수 패리티 방법: 2진 데이터 중 1의 개수가 홀수개일 때 에러 없음을 나타냄

- 짝수 패리티 방법: 2진 데이터 중 1의 개수가 짝수개일 때 에러 없음을 나타냄