Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
http.doc
Скачиваний:
0
Добавлен:
11.01.2020
Размер:
1.34 Mб
Скачать

Типы данных

Имеется 5 базовых типов данных в С: символьный, целочисленный, вещественный с одинарной точностью, вещественный с двойной точностью и void. Значения типа char используются для хранения ASCII-кодов или любых 8-битных величин. Переменные типа int используются для хранения целых величин. Переменные типа float и double содержат вещественные числа. (Вещественные числа имеют как целую, так и дробную часть.)

Тип void имеет три назначения. Первое — указание о невозвращении значения функцией. Второе — указание о неполучении параметров функцией. Третье — создание нетипизированных указателей.

С поддерживает несколько других типов, включая структуры, объединения, битовые поля, перечисления и типы, определяемые пользователем.

Модификаторы типов

За исключением типа void, основные типы данных могут иметь различные модификаторы. Модификаторы используются для более точного управления ситуацией. Ниже приведен список модификаторов: signed unsigned short

Модификаторы signed, unsigned, long и short могут применяться к целочисленным типам. К символам можно применять signed и unsigned, long может применяться к типу double. Таблица показывает все допустимые комбинации стандарта ANSI С для 16-битных типов данных вместе с размером типа в битах и границами применения в Borland С++.

Все допустимые комбинации базовых типов и модификаторов для 16-битных слов

Тип

Длина в битах

Диапазон

char

8

от-128 до 127

unsigned char

8

от 0 до 255

signed char

8

от-128 до 127

int

16

от-32768 до 32767

unsigned int

16

от 0 до 65535

signed int

16

от -32768 до 32767

short int

16

от -32768 до 32767

unsigned short int

16

от 0 до 65535

signed short int

16

от -32768 до 32767

long int

32

от -2147483648 до 2147483647

unsigned long int

32

от 0 до 4294967295

signed long int.

32

от -2147483648 до 2147483647

float

32

от 3.4е-38 до 3.4е+38

double

64

от 1.7е-308 до 1.7e+308

long double

80

от 3.4е-4932 до 1.1e+4932

Таблица  содержит информацию о 32-битных типах данных.

Таблица Все допустимые комбинации базовых типов и модификаторов дпя 32-битных слов

Тип

Длина в битах

Диапазон от-128 до 127

char

8

от 128 до 127

unsigned char

8

от 0 до 255

signed char

8

от -128 до 127

int

32

от -2147483648 до 2147483647

unsigned int

32

от 0 до 4294967295

signed int

32

от -2147483648 до 2147483647

short int

16

от -32768 до 32767

unsigned short int

16

от 0 до 65535

signed short int

16

от -32768 до 32767

long int

32

от -2147483648 до 2147483647

unsigned long int

32

от 0 до 4294967295

signed long int

32

от -2147483648 до 2147483647

float

32

от 3.4e-38 до 3.4е+38

double

64

от 1.7е-308 до 1.7е+308

long double

80

от 3.4е-4932 до 1.1e+4932

Использование signed для целочисленных типов является избыточным (но допустимым), поскольку объявление целочисленных типов по умолчанию предполагает знаковое число.

Различие между знаковыми и беззнаковыми целочисленными типами заключается в способе интерпретации старшего бита. Если используется знаковый тип, то компилятор генерирует код, предполагающий, что старший бит используется как знак числа. Если знаковый бит равен 0, то число положительное, а если 1 - отрицательное. Ниже приведены простые примеры:

Следует предупредить, что фактически все компьютеры используют дополнительную арифметику, что приводит к представлению —127 в виде, слегка отличном от вышеприведенного примера. Тем не менее, использование знакового бита является однотипным. У отрицательного числа в дополнительном виде все биты инвертированы, и к числу добавляется 1. Например, —127 в дополнительном виде выглядит следующим образом: 1111111110000001

Знаковые числа важны для многих алгоритмов, но они могут вмещать только половину значений, которые могут содержать их беззнаковые «братья». Например, 32767 выглядит следующим образом: 01111111 11111111

Если старший бит установлен в 1, то число будет интерпретироваться как —1. Тем не менее, если объявить его как unsigned int, то, если старший бит установлен, число будет содержать 65535.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]