Computer Science/Data Communication

[데이터 통신] Unsigned/Sign-and-magnitude/Two's complement representation

꿈꾸는어린이 2018. 3. 10. 19:53


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


[ Sign-and-magnitude 연산 ]

* 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

000overflow 발생!! 3+5=8이지만 표현할 수 있는 범위는 0~7까지므로 계산 x, 0이 된다



  • Sign-and-magnitude 단점

    1. 덧셈(뺄셈) 연산에 어려움이 있다.

    2. +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까지 표현 가능.