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