키보드워리어

【컴퓨터과학개론】정수와 실수의 표현 방법 본문

Universirty/1-2

【컴퓨터과학개론】정수와 실수의 표현 방법

꽉 쥔 주먹속에 안경닦이 2022. 9. 15. 13:59
728x90

안녕하세요 【키보드 워리어】

 

⌨🗡🧑


블로그 방문자 여러분, 안경닦이입니다.


 

 

컴퓨터에서 정수와 실수의 표현 방법이 무엇일까요?

 

컴퓨터에서 수를 표현할 때 크게 정수와 실수로 나뉩니다 정수는 소수점 이하의 값을 갖지 않는 수입니다

 (ex) 42, -43는 정수 42.1, -42.1은 정수가 아니에요

 

정수는 양, 음의 무한대까지 범위이지만 실제로 컴퓨터에서 이를 표현하기 위해서는 제한된 메모리로 허용하는 범위만큼의 정수만 표현 가능합니다 이런 경우엔 크게 두 종류, 부호 없는 정수와 부호 있는 정수로 나누어요

 

부호 없는 정수는 부호를 표시하는 비트가 존재하지 않기에,  n비트로 나타낼 수 있는 정수의 범위는 0부터 2n– 1까지에요 예를 들어 8비트 정수는 2 8 256-1 0부터 255까지.

 

만일 비트로 계산할 수 있는 값이 초과하는 경우는 오버플로(overflow)라 하며 이를 표현하기 위해서는 더 많은 비트가 필요해져요

 

부호 있는 정수는 음의 정수를 함께 표현할 때 부호가 필요하기 때문에 부호 있는 정수 방식을 사용합니다

 

부호 있는 정수를 표현하는 방법은 부호화-크기 방식(signed magnitude), 1의 보수방식(1’s complement), 2의 보수방식 (2’s complement)이 있으며 공통적으로 최상위 1비트가 부호 비트로 사용된다는 점에서 부호 없는 정수와 다릅니다

 

하지만 양의 정수의 경우에는 부호 부호 비트의 유무를 제외하고 어떠한 정수 표현 방식에서든 동일한 형태로 표현됨을 알 수 있습니다

 

부호화-크기 방식은 최상위 1비트를 부호 비트로 사용하며 나머지(n비트-1) 비트로는 실제 표현하려는 수의 크기만을 2진수로 표현합니다

 

음의 정수는 음수에 대한 절댓값으로 표현하고 부호화-크기 방식에서는 두 개의 영(+0,-0)이 존재하여 표현할 수 있는 음수의 범위가 1만큼 줄어들고, 데이터가 0인지를 검사하므로 복잡해지는 문제점을 갖습니다

 

1의 보수방식은 양의 정수에 대한 보수로서 음의 정수를 표현하는 것인데 음의 정수를 표현하기 위해서는 양의 정수에 대한 표현에서 0 1, 1 0으로 바꾸면 돼요

 

표현할 수 있는 수의 범위는 부호화-크기 방식에서와 동일하고, 마찬가지로 +0(000000) -0(11111111)의 두 가지 표현을 가지는 문제점이 존재합니다

 

2의 보수방식은 우선 1의 보수 방식으로 계산하되 그 결과에 1을 더해서 표현을 합니다

 

앞선 부호화-크기 방식과 1의 보수방식과 달리 오직 하나의 0이 존재하고 표현 가능한 수의 범위는

-0이 없기 때문에 음수를 하나 더 표현할 수 있기에 –(2n-1)~ +(2n-1 -1)이 됩니다

 

실수는 소수를 갖는 수를 표현하기 위함입니다. 부동소수점 방식을 사용하여 표현하죠. 부동소수점 표현 방식은 주어진 수가 0보다 큰지 또는 작은 지를 나타내는 부호, 지수, 가수 부분으로 구성됩니다

 

그리고 지수 부분을 표현하기 위해 초과 표기법(excess notation)을 사용합니다. 이 표기법은 유일하게 부동 소수점 방식의 지수 부분을 표현하기 위해서만 사용되는 방법으로, 수의 표현을 위해 N비트가 할당된 경우 매직넘버로 지정합니다

 

가수 부분을 표현할 때에는 표준화된 형식이 필요로 합니다 정규화를 수행하면 유효숫자의 첫째 자리는 언제나 1이므로 표시하지 않고 소수 부분만 표현합니다

728x90