데이터의 종류
수치 데이터 / 비수치 데이터
데이터의 형식
컴퓨터가 지원하는 데이터의 표현 방식
소수의 데이터 형식을 지원한다.
데이터와 진법
. . .
정수: 정수를 구성하는 비트의 수가 컴퓨터 설계에 의해 제한된다.
컴퓨터는 2진법을 사용한다.
정수는 0과 양의 정수, 음의 정수로 구서오딘다.
무부호 정수 - 0과 양의 정수만을 포함
유부호 정수 - 0, 양의 정수, 음의 정수
무부호 정수의 표현
2진수 표현
13 -> 1101
0확장
00000000000000000000000000001101
8진법
00 000 000 000 000 000 000 000 000 001 101
->0 0 0 0 0 0 0 0 0 1 5
: 001 -> 0*2^2 + 0*2^1 + 1*2^0 = 1
: 101 -> 1*2^2 + 0*2^1 + 1*2^0 = 5
16진법
0000 0000 0000 0000 0000 0000 0000 1101
->0 0 0 0 0 0 0 D
0~15 (10): 0 1 2 3 4 5 6 7 8 9 A B C D E F (16)
1101(2) = 13(10) = D(16)
유부호 정수 표현: 부호-크기 방식
- 1비트(MSB): 부호 비트
0: 양수
1: 응수
- 나머지: 크기 필드
- 4비트 정수에서 크기를 나타내는 3비트는 0~7의 수를 표현할 수 있으므로 정수 =7~ 7을 나타낼 수 있다.
- 장점: 부호 비트만 바꾸면 양수를 음수로, 음수를 양수로 변환할 수 있다.
- 단점
: 연산을 수행할 때 부호를 별도 점검해야 한다.
: +0과 -0이 존재한다.
: 32비트로 구성된 워드는 MSB를 부호 비트로 사용하고,
나머지 31비트는 크기로 사용한다. 따라서 32비트 워드는 -(2^31 -1) ~ +(2^31 -1)을 표현할 수 있다.
->이게 왜 단점이야?
4비트로 구성된 부호-크기 방식은 1101(2)은 13이 아니라 -5를 의미한다.
1101(2)를 32비트의 부호-크기 방식으로 표현하려면 0-확장과는 달리 MSB와 MSB 다음 비트 사이에 28비트의 0을 덧붙여야 한다.
비트 확장 10000000000000000000000000000101(2)
= -5(10)
유부호 정수 표현: 1의 보수
(4비트 사용) 양의 2진수 y에 대한 1의 보수는 (2^4 -1) -y이다.
15 -> 1111 -> 이거 다시 해. 이해 못 함.
-0 ~ -7은 +0 ~ +7에서 각 비트에 나타난 0을 1로, 1을 0으로 반전하면 된다.
4비트로 구성된 1101(2)이 1의 보수 방식이라면 부호비트가 1이므로 음수이다.
32비트이 경우 -(2^31 - 1) ~ +(2^31 - 1)
부호 확장
- 4비트로 구성된 양의 2진수 0101(2) (=+5)를 32비트로 표현하려면 다음과 같이 선행하는 0을 28개 덧붙이면 됨
->00000000000000000000000000000101
- 1101(2) (=-2)을 32비트로 구성된 1의 보수 방식으로 표현하려면 다음과 같이 선행하는 1을 28개 덧붙여야 됨
->1111111111111111111111111111111101
장점
단점
유부호 정수 표현: 2의 보수
'-0'이란 없다.
음의 정수는 1의 보수 방식보다 1을 크게 표현한다.
~(2^k -1) -y +1 -> 2^k -y
4비트로 구성된 2의 보수 방식은 -8부터 +7의 정수를 표현
32비트로 확장할 때 양수는 0을, 음수는 1을 채운다.
32비트: -2^31 ~ 2^31 -1
장점: 0이 한 개다.
단점: 변환이 조금 복잡하다.
유부호 정수 표현: 초과수
실제의 수치에 어떤 수만큼 더해서 표현하는 방식 - 바이어스된 수(편차)
7초과 코드는 7을 더하여 표현-> 바이어스가 7임.
0은 7을 더해서 7로 표현, 2는 7을 더해서 9로 표현.
초과 코드 수를 연산할 경우, 연산 후 결과 값을 보정할 필요가 있다.
2진수 표현: (+2) + (-5) = -3
7초과 코드: 9 + 2 = 11 (1001 + 0010 = 1011)
-> 다시 하자.
장점: 두 수의 크기를 비교하는 데에 용이하다.
단점: 표현법이 불편하다.
2의 보수 방식의 대중성
동일한 부호를 가진 두 숫자의 덧셈과 다른 부호를 가진 두 숫자의 덧셈 방법이 다르다.
1 0 1 1 (-3)
1 0 0 1 (-1)
+ ______________
1 1 0 0 (-4)
: 숫자의 부호가 동일한 경우
1 0 1 1 (-3)
0 0 0 1 (+1)
+ ______________
1 0 1 0 (-2)
: 숫자의 부호가 다른 경우
: 절대값이 큰 수의 부호를 따라간다. 크기는 뺀다.