컴퓨팅 시스템은 컴퓨터 외부의 데이터를 받아들여 처리하고 컴퓨터가 이해할 수 있는 내부적 표현으로 바꾼 다음 컴퓨터의 기억 장치에 기억시킵니다. 또한 필요에 따라 컴퓨팅 결과를 다시 외부적 표현 방법으로 변환하여 결과를 출력할 수 있습니다.
일반적으로 우리가 사용하는 디지털 컴퓨터는 데이터를 표현하기 위해서 내부에서는 0과 1 두 가지 상태 값을 갖는 비트로 표현할 수 있습니다.
수치 데이터 표현
컴퓨터 내부에서 사용하는 수치 데이터는 주로 2진수로 표현하여 저장, 처리됩니다. 또한 우리가 사용하는 10진수와 더불어 8진수, 16진수를 이용하여 표현하기도 하는데 현재 컴퓨터의 기억 장치는 비트로 구성한 2진수를 비트 스트링으로 보관하며 한 비트는 0과 1 두 개의 숫자를 표시하므로 항상 2진법을 기본으로 데이터를 표현합니다.
1) 정수형 데이터 표현
고정 소수점 데이터 표현으로 컴퓨터에서 표현 가능한 정수는 양수, 음수, 0의 세 가지 형태로 구성하며, 대부분 소수점을 포함하지 않는 2진수를 사용하는데 용도에 따라서는 10진수도 사용합니다. 2진수 표현은 고정 소수점 표현방식을 사용하며 여기에는 부호화 절대치, 1의 보수, 그리고 2의 보수 표현 방식이 있습니다.
고정 소수점 데이터 표현은 소수점이 어느 한 곳에 고정되어 있는 것을 의미하는데 어떤 수를 n비트의 고정된 길이로 표현하려고 할 때 최상위 비트는 부호를 표시하기 위해 사용하고 나머지 비트로 수의 크기를 표현합니다.
부호화 절대치 방식은 우리가 일상적인 수를 표시하는 방법으로 10진법 대신에 2진법으로 수를 표현합니다. 양수와 음수의 차이점은 부호 비트뿐이고 그 절대치는 같습니다. 부호는 일반적으로 2진수로 표현한 절댓값의 가장 왼쪽인 최상위 비트에 표시합니다. 음수의 경우는 S=1 양수인 경우는 S=0으로 나타납니다. (-1)S 표현법은 간단한 방법이긴 하지만 경제적인 것은 아닙니다. 계산할 때마다 부호 처리를 위한 부수적인 과정이 필요하기 때문입니다. 또한 부호화 절대치 방식의 데이터 표현 범위는 -(2n-1 - 1) ~ 2n-1 - 1입니다. 예를 들어 8비트로 표현가능한 데이트 범위는 -127~+127입니다.
1의 보수 방식을 알아보자면 먼저 보수란 어떤 수를 완전수로 만들기 위한 보완수를 의미합니다. 따라서 1의 보수 방식에서 양수는 부호화 절대치와 같은 방법이고 음수는 같은 수의 양수 표현에서 2진수의 각 비트를 1은 0으로, 0은 1로 바꾸어 표현해야 합니다. 또한 1의 보수 방식에서 데이터 표현 범위는 -(2n-1 - 1) ~ 2n-1 - 1입니다. 부호화 절대치 방법과 1의 보수 표현을 보면 0을 +0과 -0으로 표현할 수 있다는 것을 알 수 있고 이는 부호 비트만 다른 두 수의 합의 절대로 0이 되지 않는다는 사실을 알게 됩니다. 또한 1의 보수방식의 불합리를 보완하는 방법으로 2의 보수 방식이 있습니다. 2의 보수 방식은 1의 보수를 이용하여 감산을 두 번의 가산으로 처리할 수 있습니다.
2의 보수 방식은 완전수를 2로 하는 보수 체계로 1위 보수 표현에서 최하위 비트에 1을 더하는 것과 같은 값을 갖게 됩니다. 양수 표현법에서는 ㅜ호화 절대치 방법과 1의 보수 표현 방법이 동일하지만 음수는 같은 크기의 양수값을 2의 보수로 표현합니다. 이렇게 하면 0의 표현이 +0과 -0이 되는 표현이 해결되며 수의 표현 범위도 음수 쪽으로 1만큼 더 넓어집니다. 또한 2의 보수 방식의 데이터 표현 범위는 -(2n-1) ~ 2n-1 - 1이며, 음수의 10진 절댓값은 0의 weight에 1을 더해줍니다.
10진수 데이터 형식을 표현하는 경우에는 4비트로 부호를 표현해 주는 BCD 코드가 이용되는데 고정 소수점 방식보다 연산 속도가 느리고 표현 방법으로는 팩 10진법 방식과 언팩 10진법 방식이 있습니다.
팩 10진법 방식은 1바이트에 두 개의 10진수를 나타낼 수 있습니다. 또한 마지막 4비트에 부호를 표현하는데 즉 1100과 1101이 각각 양의 부호와 음의 부호입니다.
언팩 10진법 방식은 부호는 마지막 바이트의 상위 4비트를 사용하여 표현하는데 1100과 1101이 각각 양과 음의 부호 값입니다. 이때 BCD 코드를 사용하므로 수를 표현할 때 각 바이트의 상위 4비트는 존영역으로 1111로 나타내며 언팩 10진법 방식은 EBCDIC 코드로 표현하는 방법과 비교하면 부호만 제외하고 같습니다. 따라서 팩형이 언팩형보다 기억장소를 절약할 수 있다는 장점이 있고 또한 연산을 하는데도 효율적임을 알 수 있습니다.
2) 실수형 데이터 표현
소수점을 사용하여 실수를 나타내는 방식으로 고정 소수점 표현 방식과 부동 소수점 표현 방식이 있습니다. 고정 소수점 방시은 매우 큰 실수나 작은 실수를 표현하려고 한다면 많은 자리가 필요하여 비경제적이므로 일반적으로는 소수점의 위치 이동이 가능한 부동 소수점 방식을 많이 사용하고 있습니다. 부동 소수점 방식으로 수를 표현할 때는 필요한 digit을 많이 줄일 수 있으며 또한 같은 개수의 비트로 표현하는 경우 정밀도가 높아져 매우 큰 수나 작은 수를 표현할 때 경제적입니다.
부동 소수점은 소수부와 지수부를 두어 표현하는 실수형태의 데이터로서 절댓값이 매우 크거나 매우 작은 수 등 정밀도를 필요로 할 때 사용합니다. 지수 부분에는 부호 비트를 사용하지 않고 음수 지수를 표현하기 위해서 지수값에 (64)10=(40)16을 더합니다. 이와 같이 지수값을 조정하기 위해서 더하는 값을 바이어스 라하고 조정된 지수 부분을 특성값이라 부릅니다. 또한 소수점은 별도의 비트를 필요로 하지 않습니다. 일반적으로 지수부가 7비트로 정해져 있기 때문에 0부터 127까지 표현할 수 있습니다. 그러나 지수는 양수승과 음수승이 있으므로 64를 기준으로 하여 -64부터 63승까지 표현하도록 했습니다. 따라서 실제 저장되는 지수값은 지수에 64(40 16)를 더한 값으로 표현합니다. 예를 들어 지수가 16 제곱일 경우 지수부에 실제 저장되는 값은 42 16이고 지수가 16 -1일 경우는 3F16이 저장됩니다.
특히 소수 또는 정수부에서 최상위 비트의 값이 0이 되지 않도록 하고 지수값을 조정하여 표현한 변위 소수점을 정규형이라 합니다. 정규형은 수의 크기를 간단하게 비교할 수 있고 표현 가능한 수의 정밀도를 높일 수 있습니다. 또한 지수부의 부호를 제거시키는 IBM360 시스템에서는 excess-64 방식을 이용합니다. 따라서 지수를 표현할 때 해당 부분 전체를 양수로 하여 64를 +0으로 하여 증가되는 수에 따라 지수가 정해집니다.
다음 시간에는 이어서 문자형 데이터 표현에 대해 알아보도록 하겠습니다.
'컴퓨터정보' 카테고리의 다른 글
CPU 관련 정보를 알아보자 1장 (0) | 2022.01.05 |
---|---|
데이터 표현 개요 2장 (0) | 2022.01.04 |
컴퓨터의 분류를 구분해 보자 (0) | 2022.01.04 |
컴퓨터는 세대별로 어떻게 발전했을까? (0) | 2022.01.03 |
컴퓨터는 어떻게 응용이 될까? (0) | 2022.01.03 |