char short int long float double等バイトサイズ基礎情報

7997 ワード

C          (32 )    (64char            1        1 
short int       2        2 
int             4        4 
long int        4        8 
long long int   8        8 
float           4        4 
double          8        8 

1  (Byte) = 8 (bit) 
 ASCII  ,      (     )        ,              。

char                                  -2^7 ~ 2^7-1                %c 、 %d 、 %u                     
signed char                           -2^7 ~ 2^7-1                %c 、 %d 、 %u              
unsigned char                         0 ~ 2^8-1                   %c 、 %d 、 %u
[signed] short [int]                  -2^15 ~ 2^15-1              %hd               
unsigned short [int]                  0 ~ 2^16-1                  %hu 、 %ho 、 %hx
[signed] int                          -2^31 ~ 2^31-1              %d
unsigned [int]                        0 ~ 2^32-1                  %u 、 %o 、 %x
[signed] long [int]                   -2^31 ~ 2^31-1              %ld
unsigned long [int]                   0 ~ 2^32-1                  %lu 、 %lo 、 %lx
[signed] long long [int]              -2^63 ~ 2^63-1              %lld    %I64d
unsigned long long [int]              0 ~ 2^64-1                  %I64u 、 %I64o 、 %I64x
float                                 +/- 3.40282e+038            %f 、 %e 、 %g
double                                +/- 1.79769e+308            %lf 、 %le 、 %lg  %f 、 %e 、 %g
long double                           +/- 1.79769e+308            %Lf 、 %Le 、 %Lg

 signed(   )    ,          ,         ,      ;
 unsigned(   )    ,     ,            ;      
           unsigned    signedfloat    double      ),                     (  char    ),                     unsignedfloat double             ,        ;

1. char / signed char / unsigned char        1charsigned char2. char / signed char / unsigned char    ,      %c (     );     %d 、 %u  ,       ;    ,    %c .
3.          %d (    10   )、 %o (    8   )  %x (    16   )      。      %u ,   unsigned104.      h    short , l    longshort / unsigned shortint      %d/%u  ,     h 。
5.    long long"%lld"   "%llu"   linux   gcc/g++    long long int    (64 bits)         。 
  "%I64d"   "%I64u"    Microsoft VC++          __int64        。
6.             %f 、 %e   %g , scanf          ,    。 
       %f (    )、 %e (    )  %g (    )。