지식아일랜드

코딩 기초 11편 _ C++ 고정 소수점(Fixed point)과 부동 소수점(Floating point) 본문

C++ 기초

코딩 기초 11편 _ C++ 고정 소수점(Fixed point)과 부동 소수점(Floating point)

모르는게 없는 지식인 2023. 4. 3. 22:07
반응형

안녕하세요?

지식아일랜드의 모르는 게 없는 지식인입니다.

오늘은 C++ 코딩의 고정 소수점과 부동 소수점에 대해 예제 코드와 함께 설명드리겠습니다.

 

 

 

#include <iostream>
#include <iomanip>
#include <cmath>

using namespace std;

// 고정 소수점 예제
void fixedPointExample() {
       // 16비트 고정 소수점
       short fixedValue = 512; // 값 512를 저장합니다.
       float fixedFloatValue = fixedValue / 256.0f; // 2.0을 나타내는 고정 소수점 값
       cout << "고정 소수점 값: " << fixedFloatValue << endl;

       // 8비트 고정 소수점
       char fixedCharValue = 127; // 값 127을 저장합니다.
       float fixedCharFloatValut = fixedCharValue / 128.0f; // 0.992를 나타내는 고정 소수점 값
       cout << "고정 소수점 값: " << fixedCharFloatValue << endl;
}

// 부동 소수점 예제
void floatingPointExample() {
      // 32비트 부동 소수점
      float flaotValue = 3.14159365359f; // 파이 값을 저장합니다.
      cout << "부동 소수점 값: " << setprecision(10) << floatValue << endl;

      // 64비트 부동 소수점
      double doubleValue = 6.02214076e23; // 아보가드로 수를 저장합니다.
      cout << "부동 소수점 값: " << setprecision(20) << doubleValue << endl;

int main() {
    fixedPointExample();
    floatingPointExample();
    return 0;
}

 

위의 코드에서는 먼저 고정 소수점과 부동 소수점의 예제를 각각 보여줍니다.

 

'fixedPointExample()' 함수에서는 먼저 16비트와 8비트 고정 소수점 값을 생성합니다.

16비트 고정 소수점은 'short' 데이터 타입을 사용하며, 8비트 고정 소수점은 'char' 데이터 타입을 사용합니다.

 

두 경우 모두 값을 저장한 다음 해당 값을 사용하여 고정 소수점 값을 생성합니다.

이러한 값은 정수와 소수 부분을 나누어서 저장하는 것이 특징입니다.

 

예를 들어, 16비트 고정 소수점에서 값 2.0은 512를 저장하여 256으로 나누어서 나타냅니다.

8비트 고정 소수점에서 값 0.992는 127을 저장하여 128로 나누어서 나타냅니다.

 

'floatingPoingExample()' 함수에서는 먼저 32비트와 64비트 부동 소수점 값을 생성합니다.

32비트 부동 소수점은 'float' 데이터 타입을 사용하며, 64비트 부동 소수점은 'double' 데이터 타입을 사용합니다.

 

 

 

 

어떠셨나요?

오늘 C++ 코딩의 고정 소수점과 부동 소수점에 대해 예제 코드와 함께 설명드렸는데요.

어려워 보일 수 있어도 두 가지 개념의 차이를 이해하고

차근차근 예시를 복습하신다면 금방 습득하실 거에요.

그럼 저는 다음 포스팅으로 돌아오겠습니다.

감사합니다!

반응형
Comments