limits.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | /*
limits.h [INT_MIN, INT_MAX, ...]
*/
#include <stdio.h>
#include <limits.h>
int main(void){
printf("char 型のビット数: %d\n", CHAR_BIT);
printf("マルチバイト文字の最大バイト数: %d\n", MB_LEN_MAX);
printf("signed char 型の最小値: %d\n", SCHAR_MIN);
printf("signed char 型の最大値: %d\n", SCHAR_MAX);
printf("unsigned char 型の最大値: %d\n", UCHAR_MAX);
printf("char 型の最小値: %d\n", CHAR_MIN);
printf("char 型の最大値: %d\n", CHAR_MAX);
printf("short 型の最小値: %d\n", SHRT_MIN);
printf("short 型の最大値: %d\n", SHRT_MAX);
printf("unsigned short 型の最大値: %d\n", USHRT_MAX);
printf("int 型の最小値: %d\n", INT_MIN);
printf("int 型の最大値: %d\n", INT_MAX);
printf("unsigned int 型の最大値: %d\n", UINT_MAX);
printf("long 型の最小値: %li\n", LONG_MIN);
printf("long 型の最大値: %li\n", LONG_MAX);
printf("unsigned long 型の最大値: %li\n", ULONG_MAX);
return 0;
}
|
limits.c の実行結果は:
[cactus:~/code_c/refer]% ./limits
char 型のビット数: 8
マルチバイト文字の最大バイト数: 6
signed char 型の最小値: -128
signed char 型の最大値: 127
unsigned char 型の最大値: 255
char 型の最小値: -128
char 型の最大値: 127
short 型の最小値: -32768
short 型の最大値: 32767
unsigned short 型の最大値: 65535
int 型の最小値: -2147483648
int 型の最大値: 2147483647
unsigned int 型の最大値: -1
long 型の最小値: -9223372036854775808
long 型の最大値: 9223372036854775807
unsigned long 型の最大値: -1
float.c
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | /*
float.h [FLT_MIN, FLT_MAX, ...]
*/
#include <stdio.h>
#include <float.h>
int main(void){
printf("float 型の正の最小値: %f\n", FLT_MIN);
printf("double 型の正の最小値: %f\n", DBL_MIN);
printf("long double 型の正の最小値: %Le\n", LDBL_MIN);
printf("float 型の正の最大値: %f\n", FLT_MAX);
printf("double 型の正の最大値: %f\n", DBL_MAX);
printf("long double 型の正の最大値: %Le\n", LDBL_MAX);
printf("float 型の精度, 有効桁数: %d\n", FLT_DIG);
printf("double 型の精度, 有効桁数: %d\n", DBL_DIG);
printf("long double 型の精度, 有効桁数: %d\n", LDBL_DIG);
return 0;
}
|
float.c の実行結果は:
[cactus:~/code_c/refer]% ./float
float 型の正の最小値: 0.000000
double 型の正の最小値: 0.000000
long double 型の正の最小値: 3.362103e-4932
float 型の正の最大値: 340282346638528859811704183484516925440.000000
double 型の正の最大値: 179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.000000
long double 型の正の最大値: 1.189731e+4932
float 型の精度, 有効桁数: 6
double 型の精度, 有効桁数: 15
long double 型の精度, 有効桁数: 18
maxmin.c
/*
float.h
FLT_MIN float型の正の最小値
DBL_MIN double型の正の最小値
LDBL_MIN long double型の正の最小値
FLT_MAX float型の最大値
DBL_MAX double型の最大値
LDBL_MAX long double型の最大値
FLT_DIG float型の精度、有効桁数
DBL_DIG double型の精度、有効桁数
LDBL_DIG long double型の精度、有効桁数
FLT_ROUND 丸めモード ( 1:最も近い値, -1:不定,
0:ゼロに近い値, 2:正の近い値, 3:負の近い値, 4~:その他 )
通常は1になってるかと思います。
FLT_RADIX 浮動小数点の基数
『 0.1 * 2^1 』 の場合、
2が基数部、0.1が仮数部、1が指数部となります。
FLT_MANT_DIG float型のFLT_RADIXを基数とした時の仮数部の桁数
DBL_MANT_DIG double型のFLT_RADIXを基数とした時の仮数部の桁数
LDBL_MANT_DIG long double型のFLT_RADIXを基数とした時の仮数部の桁数
FLT_EPSILON float型の1+e≒1.0 となるようなe (1との差が最小値となる値)
DBL_EPSILON double型の1+e≒1.0 となるようなe (1との差が最小値となる値)
LDBL_EPSILON long double型の1+e≒1.0 となるようなe (1との差が最小値となる値)
FLT_MIN_EXP float型のFLT_RADIXを基数とした時の指数部の最小値
DBL_MIN_EXP double型のFLT_RADIXを基数とした時の指数部の最小値
LDBL_MIN_EXP long double型のFLT_RADIXを基数とした時の指数部の最小値
FLT_MAX_EXP float型のFLT_RADIXを基数とした時の指数部の最大値
DBL_MAX_EXP double型のFLT_RADIXを基数とした時の指数部の最大値
LDBL_MAX_EXP long double型のFLT_RADIXを基数とした時の指数部の最大値
FLT_MIN_10_EXP float型の10を基数とした時の指数部の最小値
DBL_MIN_10_EXP double型の10を基数とした時の指数部の最小値
LDBL_MIN_10_EXP long double型の10を基数とした時の指数部の最小値
FLT_MAX_10_EXP float型の10を基数とした時の指数部の最大値
DBL_MAX_10_EXP double型の10を基数とした時の指数部の最大値
LDBL_MAX_10_EXP long double型の10を基数とした時の指数部の最大値
*/