Thursday, October 12, 2017

Data Types in C

Data Type             Memory (bytes)          Range                      Format Specifier
short int                   2          -32,768 to 32,767                       %hd
unsigned short int          2           0 to 65,535                            %hu
unsigned int                4           0 to 4,294,967,295                     %u
int                         4          -2,147,483,648 to 2,147,483,647         %d
long int                    4          -2,147,483,648 to 2,147,483,647         %ld
unsigned long int           4           0 to 4,294,967,295                     %lu
long long int               8          -(2^63) to (2^63)-1                     %lld
unsigned long long int      8           0 to 18,446,744,073,709,551,615        %llu
signed char                 1          -128 to 127                             %c
unsigned char               1           0 to 255                               %c
float                       4                                                  %f
double                      8                                                  %lf
long double                 12                                                 %Lf


Data Types
Other Name
uint8_t
unsigned char
uint16_t
unsigned short
uint32_t
unsigned int
uint64_t
unsigned long



?Does signed and unsigned have the same size?
-> Yes, but the range is increasing 
! for example: in C signed char has 8-bits ( 1 byte) = 2^8 = 255
! signed char will range from -127 to 127 
! unsigned char will range from 0-255
@ source: https://en.wikipedia.org/wiki/C_data_types