Лабораторная работа: Операции языка Cи

- enum --> int порядковый номер в перечислимом типе

- float --> double дробная часть дополняется нулями

Если какой-нибудь операнд имеет тип double, unsigned long, long или unsigned int то и другой операнд приводится к тому же типу. Результат: того же типа.

Если оба операнда имеют тип int, то результат тоже типа int.

При вызове функций их аргументы – тоже выражения, поэтому в них приводятся char,short к int и float к double. Это говорит о том, что аргументы (формальные параметры) функций можно всегда объявлять как int и double вместо char,short и float соответственно.

Зато спецификатор unsigned является существенным.

В присваиваниях

op = expr;

Тип выражения expr приводится к типу левой части – op. При этом возможны приведения более "длинного" типа к более "короткому" при помощи усечения, вроде:

- int --> char обрубается старший байт.

- long --> int обрубается старшее слово.

- float --> int отброс дробной части

- double --> int и обрубание мантиссы, если не лезет.

- double --> float округление дробной части.

Вот еще некоторые приведения типов:

- signed --> unsigned виртуально (просто знаковый бит

- unsigned --> signed считается значащим или наоборот).

- unsigned int --> long добавление нулей слева.

- int --> long расширение знакового бита.

- float --> int преобразование внутреннего.

- int --> float представления: машинно зависимо.

Некоторые преобразования могут идти в несколько стадий, например:

- char --> long это

- char --> int --> long

char --> unsigned long это

- char --> int --> unsigned long

Лабораторные задания

Основные арифметические операции

Что напечатает следующая программа?

#include <stdio.h>

main()

{

К-во Просмотров: 476
Бесплатно скачать Лабораторная работа: Операции языка Cи