본문 바로가기
Computer Science

[Machine Level Data Representation] Fixed Point Number Representation: Unsigned and Signed

by Henry Cho 2022. 2. 4.
728x90

Fixed Point Number Representation: Unsigned and Signed


포스트 난이도: HOO_Middle

 

[Notice] 포스트 난이도에 대한 설명

안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다

whoishoo.tistory.com


 

# Floating Number

Floating number 또는 Floating point number를 배우고 Floating number의 여러 계산 방법을 이해해야 하는 이유는 컴퓨팅 과정에서의 계산 과정을 개발자가 이해하고 있어야 하기 때문이다.

Floating number를 다루는 다양한 계산 방법이 있으며, 이 중에서 기본적인 Fixed point representation의 unsigned와 signed 방식을 살펴보도록 하자.

Floating number를 나타낼 때 radix를 통해 계산과 표현이 이루어진다는 건 이미 알고 있을 것이다.

(an an-1... a1 a0. b1 b2... bm) r=  anrn + an-1rn-1 +... + a1r + a0 + b1/r + b2/r2 +... + bm/rm

또한 Number system 방식(예를 들어 hexa -> decimal, binary -> octal 등등)은 이미 기본적으로 알고 있는 부분이기에 이번 포스트에서는 설명을 생략하고 바로 Fixed point에 대해서 알아보도록 하자.

 


 

# Fixed Point Number Representation

Fixed point에서도 decimal과 binary point 부분에 대해서 살펴보도록 하자.

우선 decimal point나 binary point가 가지는 구조적 특징은 동일하다.

여기서 말하는 동일한 구조적 특징은 둘 다 모두 integer part와 fraction part을 나눠서 가지고 있다.

Integer와 Binary point 모두 machine level에서는 position이 fixed 되어 있는데, 일반적으로 rightmost position 형태를 취하고 있다.

따라서 우리는 이것을 Fixed point represenation이라고 부르며, integer로 나타내는 특징을 가지고 있다.

하지만 여기서 주의할 점은 무조건 rightmost position 형태인 것은 아니다.

조건이나 상황에 따라서 leftmost position인 형태를 보이며 integer가 아니더라도 represetation이 되기도 한다.

 예를 들면 0과 1 사이의 fraction 부분을 나타내는 경우가 바로 leftmost position 경우를 말한다.

하지만 이것은 예외 사항이니 우선적으로는 rightmost position 형태의 각각의 Fixed points들을 배워보도록 하자.

 


 

# Unsigned and Signed Fixed Point

Fixed point에 있어서 Unsigned인지 아니면 Signed인지에 따라서 나타내지는 방법이 조금 다르다.

아래의 그림을 참고하면 이해하기 수월할 것이다.

Fig_01 그림은 unsigned fixed point number이며, Fig_02 그림은 signed fixed point number이다.

 

<Fig_01_unsigned fixed point number>
<Fig_02_signed fixed point number>

 

이처럼 Signed의 경우에는 Positive와 Negative를 표현해줘야 하는 부분이 필요하기 때문에 앞의 첫 번째 수가 이 역할을 수행한다.

하지만 Unsigned의 경우에는 구분해줘야 할 필요가 없기 때문에 신경 쓰지 않아도 무방하다.

Fixed point number의 smallest와 largest 숫자의 예제는 아래와 같다.

 

# Smallest positive number
0 0000 0001 = 1/16 = 2^-4 

# Largest positive number
0 1111 1111 = 2^3*1 + 2^2*1 + 2^1*1 + 2^0*1 + 1/2 + 1/4 + 1/8 + 1/16

# Smallest negative number
1 0000 0001 = -1/16 = -2^-4

# Largest negative number
1 1111 1111 = -(2^3*1 + 2^2*1 + 2^1*1 + 2^0*1 + 1/2 + 1/4 + 1/8 + 1/16)

 

Fixed point number 방식을 이해했다면 그다음으로 Floating point number에 대해서 이해가 가능하다.

 


728x90

댓글