Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
программирование 1 к ПОВТ.doc
Скачиваний:
4
Добавлен:
09.11.2019
Размер:
1.14 Mб
Скачать

1.1.1. Операции над целыми типами данных

Над элементами целого типа определены операции: сложения (+), вычитания (-), умножения(*), деление(/) и вычисления остатка от целочисленного деления (%). В целочисленной арифметике используется другой символ для операции деления, поскольку, работая с операндами целого типа, вы получайте результаты, также принадлежащие целому типу. Например

19 /3 = 6; 3 / 4 = 0; 13/ 5 = 2.

Выделение остатка от деления двух целых чисел осуществляется операндом mod , например

19 % 3 = 1; 3 % 4 =3; 13 % 5 = 3.

В общем случае можно записать:

a % b = a – b*(a / b).

Над данными целого типа определены также операции сдвига влево (<<) и сдвига вправо (>>). Применение этих операций к беззнаковым целым типам эквивалентно операциям умножения и деления на степень 2. Например,

5 << 3 эквивалентно операции ;

40 >> 3 эквивалентно операции .

В компьютере все числа представлены в двоичной системе счисления. Операции сдвига смещают все биты вправо (>>) или влево (<<). При этом лишние биты отбрасываются, а освободившиеся места заполняются нулями. Например,

00000111 << 3 => 00111000

00111000 >> 3 => 00000111

Применяя операции сдвига к целым типам со знаком, следует иметь в виду, что старший бит отводится под знак числа. Правый сдвиг присваивает этому биту нулевое значение, т.е. знак плюс, а левый сдвиг может приводить к произвольному результату.

1.1.2. Представление целых чисел в компьютере

В машине числа хранятся в двоичной системе счисления. Под целый тип shortint отводится 8 бит памяти. Биты в двоичном слове нумеруются на арабский манер справа налево. Крайний левый бит отводится под знак числа: 0 кодирует положительные числа, 1 – отрицательные. Например,

0 => 00000000; 1 => 00000001; 2 => 00000010; …7 => 00000111; …127 => 01111111;

Такое представление числа А называется прямым кодом и обозначается . По прямому коду заменой всех 0 на 1 и всех 1 на 0 строится обратный код R(A). Отрицательные целые числа представляются в коде, называемом дополнительным и обозначаемом как D(A). Дополнительный код равен D(A)=R( -1). Например,

-1 => 11111111; -2 => 11111110; -3 => 11111101; -4 =>11111100; -128 => 10000000 .

1.1.3. Некоторые стандартные подпрограммы для работы с целыми числами

Для работы с порядковым типом данных полезны следующие функции:

floor(double x)-находит самое большое целое число, не большее, чем x;

ceil(double x) –находит минимальное целое, не меньшее чем x;

Эти функции находится в заголовочном файле math.h

1.2. Представление вещественных чисел в эвм

В математике каждому числу ставится в соответствие точка на числовой оси. При работе на компьютере из-за того, что числа хранятся в ячейках памяти, эта ось ограничена. Границы зависят от формы представления числа и количества разрядов в ячейках памяти машины.

Привычная нам форма записи чисел, например 3.1415 , - это запись десятичных чисел с фиксированной точкой. Однако удобнее при составлении программ пользоваться записью в форме с плавающей точкой. Десятичное число D в этой форме записи имеет вид где m –мантисса числа, n – его порядок. Мантиссу числа записывают в нормализованной форме так, чтобы , где – разрядность числа. Например,

В языке C++ при записи чисел с фиксированной точкой для обозначения «умножить на десять в степени» вводится буква Е, например

Цифры, предшествующие букве Е, образуют мантиссу числа, а цифры, следующие за ней – порядок.

Компьютер из-за ограниченности его разрядной сетки оперирует лишь с конечным подмножеством действительных чисел. Оно определяется разрядностью , а также границами порядка числа Границы порядка определяют ограниченность действительных чисел по величине, а разрядность - дискретность их распределения на отрезке числовой оси.

В С++ имеется два стандартных вещественных типов, характеристики которых приведены в таблице:

Таблица 4. Вещественные типы

Float

Значения в диапазоне от -3.4 x 10-38 до 3.4 x 1038

double

Значения в диапазоне от 1.7х 10-308 до 1.7х 10308