2018.3.9 <데이터 통신>
숫자(numbers) 데이터
정수, 실수
컴퓨터에서 실수를 표현하는 방식은 floating-point(부동소수점)표현이 주로 사용
8진수 24 -> 2진수 010 100
16진수 24C -> 2진수 0010 0100 1100
16진수 93 -> 10진수 9x16 + 3 = 147
Unsigned representation
An unsigned integer is an integer that can never be negative.
0과 0보다 큰 정수 (즉 양수만을 나타냄)
정수 7을 unsigned representation 방법에 따라 8비트 공간에 저장.
=> 00000111
cf) leftmost bit = MSB(most significant bit) = 가장 왼쪽(최상위) 비트
Sign-and-magnitude representation
MSB를 부호 비트로 사용
MSB가 0이면 양수, 1이면 음수
나머지 비트에는 절대값을 이진수 형태로 저장.
4비트 공간을 가정.
절대값 28을 7bit(MSB 부호 비트 제외) 이진수로 변환 -> 0011100
28 -> 0 0011100
-28 -> 1 0011100
* 2 + 1 ?
0 010 + 0 001 = 0 011(3)
1 + -3 ?
부호가 다른 경우, 절대값 중 큰 것에서 작은 것을 빼서 그 결과를 구한 뒤(부호 비트 제외 후 계산), 절대값이 큰 수의 부호에 맞춰 MSB를 부여한다.
001(1) + 011(-3) = 010(절대값 2)
MSB 부여 1010
3 + 5 ?
3 = 0 011
5 = 0 101
000
Sign-and-magnitude 단점
덧셈(뺄셈) 연산에 어려움이 있다.
+0과 -0이 발생하여 표현할 수 있는 정수의 개수를 하나 손해 본다.
Two's complement representation
현대 컴퓨터에서 정수는 2의 보수 표현방식에 따라 표현.
0의 중복이 없기 때문에 음수의 개수가 하나 더 많다.
One's complementing(1의 보수) : 비트 반전
Two's complementing(2의 보수) : 1의 보수 + 1
ex) 5 = 0101
1의 보수 = 1010
2의 보수 = 1011 (=> 컴퓨터에서는 이것이 -5)
sign 비트를 의도하지 않았지만 2의 보수로 계산을 하면 MSB가 음수일 때는 1이 되어 마치 sign비트의 역할을 한다.
Q & A
1) 8비트의 저장 공간에 unsigned representation으로 저장 가능한 정수의 최대 개수는?
2^8 = 256개 (0 ~ 255까지)
2) sign-and-magnitude representation으로 표현 가능한 정수의 개수는?
2^n - 1 개 (+0, -0이 존재하여 0이 중복됨)
2-2) sign-and-magnitude representation으로 표현 가능한 정수 범위는?
-(2^n-1 -1) ~ 2^n-1 -1
3) 8비트의 저장 공간을 이용해 양의 정수(0포함)를 저장한다고 할 때 저장 가능한 정수의 최대개수는?
256개
4) 8비트의 저장 공간을 이용해 양 혹은 음의 정수(0포함)를 저장한다고 할 때 저장 가능한 정수의 최대개수는? (S-A-M와 2의 보수 표현 사용시 각각에 대해서 구하기)
S-A-M : 255개
2의 보수 : 256개
5) 5비트 저장 공간을 사용해서 표현할 수 있는 정수의 범위는(아래 3가지 방식 각각에 대해서 구하기)?
a. unsigned
0 ~ 31까지 표현 가능.
b. sign-and-magnitude
-15 ~ 15까지 표현 가능.
c. 2’s complement
-16 ~ 15까지 표현 가능.
'Computer Science > Data Communication' 카테고리의 다른 글
[데이터통신] 비트토렌트(BitTorrent) (0) | 2018.04.10 |
---|---|
[데이터 통신] Sampling 기법 (0) | 2018.03.10 |
[데이터 통신] 비트 패턴(Bit Pattern) (0) | 2018.03.10 |