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

Данные вещественного типа

Числа с плавающей точкой представляются в соответствии с IEEE стандартом, в виде двух частей – мантиссы M и порядка P числа в двоичной системе счисления:

А=M*2P

Величины типа float занимают 4 байта. Из них 1 бит отводится для знака, 8 бит для избыточной экспоненты и 23 бита для мантиссы. Мантисса - это число между 1.0 и 2.0. Так как старший бит мантиссы всегда 1, он не запоминается в памяти. Такое представление даёт диапазон значений приблизительно от 1.17E-38 до 3.37E+38. Величины типа double занимают 8 байт памяти. Их формат аналогичен формату float. Биты памяти распределяются следующим образом: 1 бит для знака, 11 бит для экспоненты и 52 бита для мантиссы. С учётом опущенного старшего бита мантиссы, диапазон значений получается приблизительно от 2.23Е-308 до 1.67Е+308.

Таблица 2

Тип

Байты

Диапазон

Точность

float

4

1.17E-38…3.37E+38

7

double

8

2.23E-308…1.67E+308

15

long double

10

3.37E-4932…1.2E+4932

19

Признаком константы с плавающей точкой является наличие в её записи точки, символа E или e.

Модификатор const

В С(С++) имеется модификатор const используемый для контроля за способом доступа или модификации переменных. Переменные, используемые с модификатором const, не могут изменять своего значения в процессе работы программы, например:

const int i=24;

создает целочисленную переменную i которой присваивается значение 24 и это значение не может быть модифицировано далее в программе. При объявлении переменных с модификатором const они должны быть обязательно инициализированы.

Число байт для хранения переменной с модификатором аналогично числу байт без него.

Обычно модификатор const используют при передаче адресов параметров структурного типа в функции для запрещения изменения значений находящихся по этим адресам.

Ниже приведен пример определения и инициализации данных стандартного типа.

#include<stdio.h> // подсоединение библиотеки с функциями

// ввода/вывода

void main() // определение головного модуля

{ int i1, i2, i3; // три переменные целого типа со знаком

int ix= 5, iy= -7; // определение и инициализация переменных

// целого типа

long l1, l2; // длинные целые знаковые переменные

long unsigned lu1= 125, lu2= 1234567; // длинные целые беззнаковые

// переменные

float f1= -1.57, f2= 3.14; // переменные вещественного типа

char let, symb= ‘z’, n_str= ‘\n’; // символьные переменные ,

short s1= 100,s2= 50; // короткие целые знаковые переменные

const unsigned u= 113; // беззнаковая целочисленная константа

const k= 17; // целочисленная константа

}