
데이터 형식
- 컴퓨터가 지원하는 데이터의 표현 방식 ⇒ 컴퓨터에서 제공하는 명령어 집합으로 연산할 수 있는 정보의 표현
- 어떤 데이터를 다룰 때 하드웨어로 처리하면 빠르지만 유연 x 소프트웨어로 하면 속도는 조금 느리지만 유연
- ex)
- 간단한 데이터 형식: 정수, 불리언, 문자, 부동소수점 수
- 복합적인 데이터 형식: 문자열, 배열, 벡터, 스택, 큐, etc
- 모든 데이터 형식을 지원하면 하드웨어의 복잡성과 비용 ⬆️ ⇒ 대부분의 아키텍처는 소수의 데이터 형식을 지원
기수법과 진법
- 기수법: 기호를 사용하여 수를 나타내는 방법(주어진 수를 몇 개의 정수를 써서 나타낼건지)
- 진법: 자릿값이 올라갈 때마다 일정 배수로 커지는 수의 표시법
정수
무부호 정수(unsigned integer)의 표현

- 범위: ~ (양수)
유부호 정수(signed integer)의 표현

부호-크기 방식
- 1비트: 부호 비트, 나머지 비트: 크기 필드
- 범위: ~
- 장
- 부호비트만 바꾸면 양, 음수 변환 용이
- 단
- 연산 수행 시 부호 별도 점검 필요
- +0, -0이 따로 있음
7-초과 코드(exceed code) 방식

- 실제 수에 어떤 수를 더해서 표현 ⇒ 원래 수에 7을 더한 값을 사용
⇒ 음수를 다루지만 저장할 때는 양수만 다루는 것처럼 사용 o
- 7은 어디서 나옴? 4비트라 15까지 표현할 수 있는데 그거에 중간값을 찾음 그럼 8비트의 초과코드는? 255/2 = 127이라 127-초과 코드가 됨
- 바이어스된 수(biased number)라고도 부름
- 부호비트 x
- 장
- 대소 비교 용이
- 단점
- 덧셈은 초과수를 빼야하고, 뺄셈은 초과수를 더해줘야 됨
- ex) 1 + 2 = 1000 + 1001 = 10001 = (1+7) + (2+7) =/= 3 7이 두 번 더해져서 한 번 빼줘야함
1의 보수 방식
- 비트 정수의 경우, 양의 2진수 에 대한 1의 보수는 ⇒ 음수를 표현하기 위해 각 비트를 0과 1 사이에 상호 반전
- 범위: ~
- 부호비트 존재
- 장
- 양, 음수 변환 용이
- 단
- +0, -0이 따로 있음
2의 보수 방식
- 비트 정수의 경우, 양의 2진수 에 대한 2의 보수는
⇒ 음수를 표현하기 위해 1의 보수에 1을 더함
- ⭐ 음수에만 +1
- 장
- 0이 1개
- 단
- 양, 음수 변환 불편
예제
50 + (-10) | (-50) + (-10) | (-50) + 10 | |
부호-크기 | 0011 0010(50) + 1000 1010(-10) ———————- 0010 1000(40) | 1011 0010(-50) + 1000 1010(-10) ———————- 1011 1100(-60) | 1011 0010(-50) + 0000 1010(10) ———————- 1010 1000(-40) |
1의 보수 | 0011 0010(50) + 1 111 0101(-10) ———————- 10010 0111 0010 0111 + 1 ————————- 0010 1000(40) | 1100 1101(-50) + 1111 0101(-10) ———————- 11100 0010 1100 0010 + 1 ———————- 1100 0011(-60) | 1100 1101(-50) + 0000 1010(10) ———————- 1101 0111(-40) |
2의 보수 | 0011 0010(50) + 1 111 0110(-10) ———————- 0010 1000(40) | 1100 1110(-50) + 1111 0110(-10) ———————- 1100 0100 ⇒ 뒤집고 +1 ⇒ 0011 1100(60) ⇒ 부호 붙이기 ⇒ -60 | 1100 1110(-50) + 0000 1010(10) ———————- 1101 1000 ⇒ 뒤집고 +1 ⇒ 0010 1000(40) ⇒ 부호 붙이기 ⇒ -40 |
Uploaded by N2T
'이론 > 컴퓨터구조' 카테고리의 다른 글
연산장치 개요 (1) | 2024.01.02 |
---|---|
실수, 비수치 데이터 (1) | 2023.12.24 |
복잡도에 따른 명령어 집합 (1) | 2023.12.04 |
주소 지정 방식 (1) | 2023.11.30 |
명령어와 메모리 (0) | 2023.11.27 |
댓글