(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의 개수가 짝수개일 때 에러 없음을 나타냄
'컴퓨터 일반' 카테고리의 다른 글
| 2. 운영체제 - 운영체제의 개념 (0) | 2026.01.22 |
|---|---|
| 1. 컴퓨터 구조 - 입출력장치 및 병렬처리 (1) | 2026.01.21 |
| 1. 컴퓨터 구조 - 기억장치 (0) | 2026.01.21 |
| 1. 컴퓨터 구조 - 중앙처리장치 (0) | 2026.01.21 |
| 1. 컴퓨터 구조 - 컴퓨터와 동작원리 (0) | 2026.01.13 |