データ型

整数型

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を基数とした時の指数部の最大値

*/

Table Of Contents

Previous topic

型変換関数

Next topic

エラー関連