Table B-1 and Table B-2 list the ranges of various variable types. Table B-1. 32-bit Unix machine and Windows-32 systems Name | Bits | Low value | High value | Accuracy | int | 32 | -2,147,483,648 | 2,147,483,647 | | short int | 16 | -32,768 | 32,767 | | long int | 32 | -2,147,483,648 | 2,147,483,647 | | unsigned int | 32 | | 4,294,967,295 | | unsigned short int | 16 | | 65,535 | | unsigned long int | 32 | | 4,294,967,295 | | char | 8 | System-dependent | | | unsigned char | 8 | | 255 | | float | 32 | -3.4E+38 | 3.4E+38 | 6 digits | double | 64 | -1.7E+308 | 1.7E+308 | 15 digits | long double | 64 | -1.7E+308 | 1.7E+308 | 15 digits | Table B-2. Older MS-DOS compilers and most other 16-bit systems Name | Bits | Low value | High value | Accuracy | int | 16 | -32,768 | 32,767 | | short int | 16 | -32,768 | 32,767 | | long int | 32 | -2,147,483,648 | 2,147,483,647 | | unsigned int | 16 | | 65,535 | | unsigned short int | 16 | | 65,535 | | unsigned long int | 32 | | 4,294,967,295 | | char | 8 | -128 | 127 | | unsigned char | 8 | | 255 | | float | 32 | -3.4E+38 | 3.4E+38 | 6 digits | double | 64 | -1.7E+308 | 1.7E+308 | 15 digits | long double | 80 | -3.4E+4932 | 3.4E+4932 | 17 digits | |