C言語 #10: 数値データ型(Numeric Data Types)

独習C

数値データ型は、C言語で数値を扱うための基本的なデータ型です。数値データ型を理解することで、適切なメモリ管理や効率的な計算を行うことができます。ここでは、C言語の数値データ型について詳しく説明します。

1.整数型(Integer Types)

整数型は、小数部分のない数値を表現します。C言語にはいくつかの種類の整数型があり、それぞれが異なる範囲の数値を表現できます。

1.1.基本的な整数型

  • int: 標準の整数型
  • short: 短い整数型
  • long: 長い整数型
  • long long: 非常に長い整数型
#include <stdio.h>

int main() {
    int a = 100;
    short b = 10;
    long c = 100000;
    long long d = 10000000000;

    printf("int: %d\n", a);
    printf("short: %d\n", b);
    printf("long: %ld\n", c);
    printf("long long: %lld\n", d);

    return 0;
}

1.2.符号付き整数型と符号なし整数型

整数型は、符号付きと符号なしの2種類があります。符号付き整数型は負の値を含むことができますが、符号なし整数型は非負の値のみを表現します。

#include <stdio.h>

int main() {
    signed int a = -100;
    unsigned int b = 100;
    signed short c = -10;
    unsigned short d = 10;
    signed long e = -100000;
    unsigned long f = 100000;
    signed long long g = -10000000000;
    unsigned long long h = 10000000000;

    printf("signed int: %d\n", a);
    printf("unsigned int: %u\n", b);
    printf("signed short: %d\n", c);
    printf("unsigned short: %u\n", d);
    printf("signed long: %ld\n", e);
    printf("unsigned long: %lu\n", f);
    printf("signed long long: %lld\n", g);
    printf("unsigned long long: %llu\n", h);

    return 0;
}

2.浮動小数点型(Floating-Point Types)

浮動小数点型は、小数部分を持つ数値を表現するために使用されます。C言語には、異なる精度を持つ3種類の浮動小数点型があります。

2.1.基本的な浮動小数点型

  • float: 単精度浮動小数点型
  • double: 倍精度浮動小数点型
  • long double: 拡張倍精度浮動小数点型
#include <stdio.h>

int main() {
    float a = 3.14f;
    double b = 3.141592653589793;
    long double c = 3.141592653589793238462643383279502884L;

    printf("float: %f\n", a);
    printf("double: %lf\n", b);
    printf("long double: %Lf\n", c);

    return 0;
}

2.2.浮動小数点数の精度

浮動小数点型の精度は、型ごとに異なります。floatは約7桁の有効数字を、doubleは約15桁の有効数字を、long doubleはさらに多くの有効数字を表現できます。

#include <stdio.h>

int main() {
    float a = 1234567.0f;
    double b = 123456789012345.0;
    long double c = 123456789012345678901234567890.0L;

    printf("float: %.7g\n", a); // 7桁の有効数字
    printf("double: %.15g\n", b); // 15桁の有効数字
    printf("long double: %.20Lg\n", c); // 20桁の有効数字

    return 0;
}

3.数値データ型の操作

数値データ型は、様々な算術演算や比較演算に使用できます。これには、加算、減算、乗算、除算、剰余演算、および比較演算が含まれます。

3.1.算術演算

基本的な算術演算には、加算(+)、減算(-)、乗算(*)、除算(/)、および剰余(%)が含まれます。

#include <stdio.h>

int main() {
    int a = 10, b = 3;
    float x = 10.0f, y = 3.0f;

    // 整数の算術演算
    printf("加算: %d + %d = %d\n", a, b, a + b);
    printf("減算: %d - %d = %d\n", a, b, a - b);
    printf("乗算: %d * %d = %d\n", a, b, a * b);
    printf("除算: %d / %d = %d\n", a, b, a / b);
    printf("剰余: %d %% %d = %d\n", a, b, a % b);

    // 浮動小数点数の算術演算
    printf("加算: %f + %f = %f\n", x, y, x + y);
    printf("減算: %f - %f = %f\n", x, y, x - y);
    printf("乗算: %f * %f = %f\n", x, y, x * y);
    printf("除算: %f / %f = %f\n", x, y, x / y);

    return 0;
}

3.2.比較演算

比較演算には、等しい(==)、等しくない(!=)、大きい(>)、小さい(<)、大きいまたは等しい(>=)、および小さいまたは等しい(<=)が含まれます。

#include <stdio.h>

int main() {
    int a = 10, b = 3;

    // 整数の比較演算
    printf("等しい: %d == %d は %d\n", a, b, a == b);
    printf("等しくない: %d != %d は %d\n", a, b, a != b);
    printf("大きい: %d > %d は %d\n", a, b, a > b);
    printf("小さい: %d < %d は %d\n", a, b, a < b); printf("大きいまたは等しい: %d >= %d は %d\n", a, b, a >= b);
    printf("小さいまたは等しい: %d <= %d は %d\n", a, b, a <= b);

    return 0;
}

4.総合例

以下に、これまでに学んだ数値データ型の知識を統合したプログラムを示します。このプログラムは、様々な整数型と浮動小数点型を使用し、基本的な算術演算と比較演算を行います。

#include <stdio.h>

int main() {
    // 整数型
    int intNum = 42;
    unsigned int uIntNum = 42;
    short shortNum = 42;
    long longNum = 42L;
    long long longLongNum = 42LL;

    // 浮動小数点型
    float floatNum = 3.14f;
    double doubleNum = 3.141592653589793;
    long double longDoubleNum = 3.141592653589793238462643383279502884L;

    // 数値の出力
    printf("int: %d\n", intNum);
    printf("unsigned int: %u\n", uIntNum);
    printf("short: %d\n", shortNum);
    printf("long: %ld\n", longNum);
    printf("long long: %lld\n", longLongNum);

    printf("float: %f\n", floatNum);
    printf("double: %lf\n", doubleNum);
    printf("long double: %Lf\n", longDoubleNum);

    // 算術演算
    int a = 10, b = 3;
    printf("加算: %d + %d = %d\n", a, b, a + b);
    printf("減算: %d - %d = %d\n", a, b, a - b);
    printf("乗算: %d * %d = %d\n", a, b, a * b);
    printf("除算: %d / %d = %d\n", a, b, a / b);
    printf("剰余: %d %% %d = %d\n", a, b, a % b);

    // 比較演算
    printf("等しい: %d == %d は %d\n", a, b, a == b);
    printf("等しくない: %d != %d は %d\n", a, b, a != b);
    printf("大きい: %d > %d は %d\n", a, b, a > b);
    printf("小さい: %d < %d は %d\n", a, b, a < b); printf("大きいまたは等しい: %d >= %d は %d\n", a, b, a >= b);
    printf("小さいまたは等しい: %d <= %d は %d\n", a, b, a <= b);

    return 0;
}

5.結論

ここでは、C言語の数値データ型について説明しました。整数型と浮動小数点型の違いや、それぞれの使用方法について学びました。これらの知識を活用することで、効率的かつ効果的な数値操作が可能になります。

購読
通知
0 Comments
Inline Feedbacks
View all comments