вставит команды, приводящие тип переменной b к типу float. Однако если бы смешанные выражения в языке С не допускались, то подобная ошибка была бы зарегистрирована компилятором как ошибка определения типа.
В языках C++ и Java существуют типы целых чисел, меньше типа int. В языке C++ это типы char и short int, а в языке Java — byte, short и char. Операнды этих типов приводятся к типу int при применении к ним практически любого оператора. Таким образом, пока переменные этих типов могут содержать данные, нельзя оперировать с такими данными без приведения их к большему типу. Рассмотрим, например, следующие команды языка Java:
byte a, b, с;
а = b + с;
Значение переменных b и с приводятся к типу int, после чего выполняется целочисленное сложение, результат которого преобразовывается в тип byte и присваивается переменной а.
Явное преобразование типов
Большинство языков позволяют выполнять явное преобразование типов, как сужающее, так и расширяющее. В некоторых случаях выдаются сообщения, предупреждающие о значительном изменении величины объекта вследствие сужающего преобразования типов.
В языках, основанных на языке С, явное преобразование типа называется приведением (cast). Синтаксис приведения не совпадает с синтаксисом вызовов функций: требуемый тип помещается в круглые скобки непосредственно перед преобразовываемым выражением: (int) angle
Одной из причин использования в языке С скобок при преобразованиях типов является существование в этом языке имен типов, состоящих из двух слов, например long int.
пример : 1
пример : 2
?
=>
1111 | 0111
11111111 | 00000111
преобразования :
Ø по умолчанию
Ø явные
явные : (long) – расширяющие
неявные : сужающие
II. Булевы выражения и выражения отношения.
Помимо арифметических выражений, еще выражения булевские, или логические.
(and, or, xor, not) ( >, <, =>, >=, <=, ==, != )
| 1 -больше
<=>| -1 –меньше
| 0 –равно
Выражения отношения
Оператор отношений (relational operator) сравнивает значения двух своих операндов. Выражение отношений (relational expression) состоит из двух операндов и одного оператора отношений. Значение выражения отношений принадлежит к булевскому типу, за исключением случая, когда в языке нет булевского типа. Операторы отношений обычно перегружаются для большого числа типов. Операция, определяющая истинность или ложность выражения отношений, зависит от типов операндов. Она может быть простой (для целых операндов) или сложной (для операндов, являющихся символьными строками). Обычными типами операндрв, которые могут использоваться в выражениях отношений, являются числовые типы, строки и порядковые типы.
Ниже приводится синтаксис выражений отношения в некоторых распространенных языках программирования.
Операция Pascal Ada С FORTRAN 77
Равно = = = = .EQ.
Неравно <> != != .NE.
Больше > > > .GT.
Меньше < < < .LT.
Больше или равно >= >= >= .GE.
Меньше или равно <= <= <= .LE.
Поскольку на карточных перфораторах времен разработки языка FORTRAN I отсутствовали символы < и >, то разработчики этого языка использовали в выражениях отношения соответствующие английские аббревиатуры. В языке FORTRAN 90 допускается использование исходных операторов отношений и операторов, аналогичных существующим в языке Pascal, за исключением того, что для отношения равенства используется символ ==.
Приоритет операторов отношения всегда ниже приоритета арифметических операций, поэтому в выражениях
а + 1 > 2 * b первыми вычисляются арифметические
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.