"Мюррэй Хилл, Бьярн Страустрап. Язык С++" - читать интересную книгу автора

float
double

для представления чисел с плавающей точкой,

unsigned char
unsigned short int
unsigned int
unsigned long int

для представления беззнаковых целых, логических значений, битовых
массивов и т.п. Для большей компактности записи можно опускать int
в комбинациях из нескольких слов, что не меняет смысла; так, long
означает long int, и unsigned означает unsigned int. В общем, когда
в описании опущен тип, он предполагается int. Например:

const a = 1;
static x;

все определяют объект типа int.
Целый тип char наиболее удобен для хранения и обработки символов
на данном компьютере; обычно это 8-битовый байт. Размеры объектов
C++ выражаются в единицах размера char, поэтому по определению
sizeof(char)==1. В зависимости от аппаратного обеспечения char
является знаковым или беззнаковым целым. Тип unsigned char,
конечно, всегда беззнаковый, и при его использовании получаются
более переносимые программы, но из-за применения его вместо просто
char могут возникать значительные потери в эффективности.
Причина того, что предоставляется более чем один целый тип, более
чем один беззнаковый тип и более чем один тип с плавающей точкой, в
том, чтобы дать возможность программисту воспользоваться
характерными особенностями аппаратного обеспечения. На многих
машинах между различными разновидностями основных типов существуют
значительные различия в потребностях памяти, временах доступа к
памяти и временах вычислений. Зная машину обычно легко, например,
выбрать подходящий тип для конкретной переменной. Написать
действительно переносимую программу нижнего уровня сложнее. Вот
все, что гарантируется относительно размеров основных типов:
1==sizeof(char)<=sizeof(short)<= sizeof(int)<=sizeof(long)
sizeof(float)<=sizeof(double)
Однако обычно разумно предполагать, что в char могут храниться
целые числа в диапазоне 0...127 (в нем всегда могут храниться
символы машинного набора символов), что short и int имеют не менее
16 бит, что int имеет размер, соответствующий целой арифметике, и
что long имеет по меньшей мере 24 бита. Предполагать что-либо
помимо этого рискованно, и даже эти эмпирические правила применимы
не везде. Таблицу характеристик аппаратного обеспечения для
некоторых машин можно найти в #с.2.6.
Беззнаковые (unsigned) целые типы идеально подходят для
применений, в которых память рассматривается как массив битов.