[자료구조기초] 자료의 표현-1

2 분 소요

[자료구조기초] 자료의 표현-1

개론

  • 이번 포스팅에서는 컴퓨터 내부에서 표현할 수 있는 자료의 종류에 대해 포스팅 하려고 한다.

컴퓨터에서의 자료 표현

  • 컴퓨터는 숫자, 문자, 그림, 소리 등의 모든 자료형식을 표현하기 위하여 1과 0만을 사용하는 2진수 코드를 사용한다.

  • 2진수 한 자리인 1 또는 0을 표현하는 단위를 Bit 라고 한다. 비트는 디지털 시스템에서 자료를 표현하는 최소 단위.

  • 4비트 그룹을 Nibble , 8비트 그룹을 Byte 라고 한다. n개의 비트로는 2^n개의 상태를 표현할 수 있음.

  • 컴퓨터가 표현할 수 있는 자료는 크게 수치자료, 문자자료, 논리자료, 포인터 자료, 문자열 자료 가 있다.

  • 이 포스팅에서는 컴퓨터가 표현할 수 있는 자료 중 수치 자료 에 대해서 다뤄본다.

수치 자료의 종류

  • 컴퓨터는 2진수 코드를 사용하지만, 컴퓨터가 표현 할 수 있는 수치 자료에는 10진수 수치 자료와 2진수 수치 자료 가 존재한다.

  • 10진수를 표현 할 수 있는 방법으론 존 형식과 팩 형식 이 있다.

  • 2진수로는 정수를 표현 할 수 있고, 실수를 표현 할 수 있다.

10진수 표현 - 존 형식

  • 10진수 한 자리를 존 형식으로 표현하기 위해서 1바이트를 한 단위 로 사용한다.

  • 1바이트 중 상위 4비트는 존 영역, 하위 4비트는 수치 영역 이라 한다.

  • 존 영역은 항상 1111로 표시. 수치 영역에는 10진수 한자리 값을 2진수의 값으로 나타낸다.

  • 부호는 최하위 바이트의 존영역에 양수일 경우 1100 , 음수일 경우 1101 을 쓴다.

  • +213 일 경우 ‘1111 0010 1111 0001 1100 0011’ 로 나타나진다.

10진수 표현 - 팩 형식

  • 존 형식에서 최하위 부호 표시하는 존영역을 빼놓고 나머지 존영역은 공간이 낭비되는 단점 이 있다.

  • 이러한 이유로 팩 형식은 1바이트에 10진수 두자리를 표현 하게 된다.

  • 부호는 최하위 바이트의 하위 4비트에 표시한다 .

  • +213을 팩형식으로 나타내면 ‘0010 0001 0011 1100’ 으로 나타낼 수 있다.

2진수의 정수 표현

  • 2진수는 일정한 길이의 n비트로 표현한다. 실생활에서 정수는 음수와 양수를 표현하기 위하여 -, + 같은 부호를 사용하지만 컴퓨터에서는 2진수만 사용하기 때문에 부호를 어떻게 표현하느냐에 따라 3가지 방식으로 나뉜다. 부호와 절대값 형식, 1의 보수 형식, 2의 보수 형식.

  • 부호화 절대값 형식은 부호를 최상위 비트에 표시하고 나머지 비트에 2진수의 절대값을 표현. 양수일 경우 부호 비트 - 0 , 음수일 경우 부호 비트 - 1. (감산기 회로 사용)

  • 1의 보수 형식에서 양수는 부호와 절대값 형식과 같은 방법으로 표현하고, 음수는 2진수를 1의 보수로 변환하여 표현한다. ( 0->1, 1->0 ) (가산기 회로 사용- 캐리비트 생기면 1 더해줌).

  • 2의 보수 형식 역시 양수는 부호와 절대값과 같은 방법으로 표현하고, 음수는 1의 보수를 취한 후 + 1을 하여 표현한다(가산기 회로 사용 - 캐리비트 생기면 무시함).

  • 즉, 부호와 절대값 형식, 1의 보수 형식, 2의보수 형식 모두 양수를 표현하는 방법은 같고, 음수를 표현하는 방법에서 차이가 난다.

  • 세가지 방법을 비교하면, 양수에 있어서는 모두 같지만, 부호와 절대값 형식과 1의 보수는 양의 0과 음의 0 , 두가지의 0이 존재하는 낭비가 발생한다. 2의 보수 형식은 0이 하나고 대신 음수의 표현 범위가 1개 증가한다. ( 2의 보수로 표현할 수 있는 범위 : -2^n-1 ~ 2^n-1 -1).

2진수의 실수 표현

  • 컴퓨터는 2진수만으로 실수를 표현해야 하므로 소수점을 직접 표현하지 못하고, 정수부와 실수부의 위치를 정의하여 실수를 표현하게 된다.

  • 실수를 표현하는 방법에는 소수점 위치가 같은 자리로 고정되는 ‘고정 소수점 표현 방식’과 ‘소수점 위치가 고정되지 않고 변하는 부동 소수점 표현 방식’ 이 있다.

고정소수점 표현 방식

  • 소수점이 항상 최상위 비트의 왼쪽 밖에 고정되어 있다고 취급하는 방법.

  • 고정 소수점 표현의 00010101은 0.00010101의 실수 값을 의미한다.

부동소수점 표현 방식

  • 고정 소수점 형식에 비해서 표현 가능한 값의 범위가 넓다.

  • 부호, 지수, 가수의 세 영역 을 사용한다.

  • 4바이트를 사용하는 단정도 부동 소수점 형식과 8바이트를 사용하는 배정도 부동 소수점 표현 방식이 존재.

  • 단정도에서는 부호 1비트, 지수부 8비트, 가수부 23비트로 나눔.

  • 배정도에서는 부호 1비트, 지수부 11비트, 가수부 52비트로 나눔.

  • 1단계는 정규화 단계 이다. 정수부가 1이 되도록 소수점을 이동하여 변환.

  • 2단계는 부호 이다. 양수는0, 음수는1을 저장

  • 3단계는 가수부. 정규화 하면, 정수부는 항상 1이되므로 생략하고 소수부만 저장한다.

  • 4단계는 지수부. 단정도에서는 지수 + 127을 저장. 배정도에서는 지수+1023을 저장한다.


[출처] C로 배우는 쉬운 자료구조(이지영) , 한빛 미디어

댓글남기기