본문 바로가기
Major/#C언어 (C Programming)

C언어 정수와 실수 표현 (Representing integers and real numbers in C)

by Bright_Between 2023. 4. 27.
반응형

C언어는 컴퓨터 과학에서 가장 중요한 프로그래밍 언어 중 하나입니다. 이 언어는 컴퓨터의 하드웨어와 밀접한 관련이 있기 때문에 컴퓨터의 표현 방식에 대한 이해가 필수적입니다. 따라서, 이 포스트에서는 C언어에서 컴퓨터의 정수 표현 방식과 실수 표현 방식에 대해 설명하겠습니다.

 

 


1. 정수 표현 방식

컴퓨터는 이진수를 사용하여 모든 데이터를 표현합니다. 따라서, C언어에서 정수는 2진수로 표현됩니다. 하지만, 이진수로 표현할 때 부호 비트를 포함해 몇 개의 비트를 사용하는지는 운영 체제와 하드웨어에 따라 다릅니다.

대표적인 정수 표현 방식으로는 부호 있는 2진수를 사용하는 2의 보수법이 있습니다. 2의 보수법은 양수와 음수를 모두 표현할 수 있는 방법입니다. 이 방법은 다음과 같은 단계를 따릅니다.

1. 양수를 이진수로 표현합니다.
2. 모든 비트를 반전시킵니다.
3. 1을 더합니다.

예를 들어, 4비트의 2진수에서 숫자 3은 다음과 같이 표현됩니다.

0011 (3)

그러나, 2의 보수법을 사용하면 숫자 3의 음수인 -3은 다음과 같이 표현됩니다.

1101 (-3)

이진수 1101은 원래 숫자 3의 비트를 반전시킨 후 1을 더한 결과입니다. 이진수 1101을 10진수로 변환하면 -3이 됩니다.

 

 


2. 실수 표현 방식

실수는 부동 소수점 방식으로 표현됩니다. 이 방식은 소수점의 위치를 고정하지 않고, 지수와 가수를 사용하여 실수를 표현하는 방법입니다. 이 방식에서, 가수는 소수점 이하의 숫자를 나타내며, 지수는 10진수에서 소수점의 위치를 나타냅니다.

C언어에서는 float, double, long double 세 가지의 실수형 데이터 타입을 지원합니다. float는 4바이트, double은 8바이트, long double은 시스템에 따라 다르지만 일반적으로 10바이트 이상의 크기를 가집니다.

실수형 데이터는 부동 소수점 방식으로 저장되기 때문에 오차가 발생할 수 있습니다. 이는 컴퓨터의 이진수 표현 방식 때문입니다. 컴퓨터는 이진수를 사용하여 모든 데이터를 처리하기 때문에, 소수를 정확하게 표현할 수 없습니다. 예를 들어, 1/3을 10진수로 표현하면 0.33333...과 같은 무한 소수가 됩니다. 하지만, 이 값을 이진수로 변환하면 정확하게 표현할 수 없습니다. 따라서, 컴퓨터에서는 부동 소수점 방식을 사용하여 실수를 근사적으로 표현합니다.

 



부동 소수점 방식에서는 가수와 지수를 사용하여 실수를 표현합니다. 가수는 2진수로 소수점 이하의 숫자를 나타내며, 지수는 10진수에서 소수점의 위치를 나타냅니다. 가수와 지수의 크기는 데이터 타입에 따라 다르며, float에서는 가수가 23비트, double에서는 52비트, long double에서는 63비트로 표현됩니다.

부동 소수점 방식에서는 지수가 음수일 때 실수의 절대값이 매우 작아질 수 있습니다. 이 경우, 정확도가 떨어지는데, 이를 부동 소수점 오차라고 합니다. 부동 소수점 오차는 실수 계산에서 예상치 못한 결과를 가져올 수 있습니다. 따라서, 부동 소수점 방식을 사용할 때는 오차를 고려하여 코드를 작성해야 합니다.


이상으로, C언어에서 컴퓨터의 정수 표현 방식과 실수 표현 방식에 대해 간략히 설명해보았습니다. 정수는 2진수로 표현되며, 2의 보수법을 사용하여 양수와 음수를 모두 표현할 수 있습니다. 실수는 부동 소수점 방식을 사용하여 표현되며, 이진수 표현 방식으로 인해 부동 소수점 오차가 발생할 수 있습니다. 이러한 특성들을 이해하면, C언어를 더욱 효율적으로 사용할 수 있습니다.

반응형

댓글