Программирование >>  Обработка исключительных ситуаций 

1 ... 13 14 15 [ 16 ] 17 18 19 ... 142


Пример применения операциий умножения, деления и получения остатка прел ставлен в листинге 3.4.

Листинг 3.4. Операции умножения, деления и получения остатка using System;

namespace Consol eApplicationl { class Classl

{ static void MainO

int x = 11, у

float z = 4;

Console.WriteLineC Console.WriteLineC Console.WriteLineC Console. WriteLineC Console.WriteLineC

z * у ) ;

Результат

z * le308 );

Результат

бесконечность

x / у ) ;

Результат

x / z ) ;

Результат

2.75

x I у ) :

Результат

le-324 / le-324 );

Результат

Еще раз обращаю ваше внимание на то, что несколько операций одного приори тета выполняются слева направо. Для примера рассмотрим выражение 2 / х у Деление и умножение имеют один и тот же приоритет, поэтому сначала 2 делит ся на х, а затем результат этих вычислений умножается на у. Иными словамр это выражение эквивалентно формуле

--ух

Если же мы хотим, чтобы выражение х у было в знаменателе, следует заклю чить его в круглые скобки или сначала поделить числитель на х, а потом на у, т есть записать как 2 / (х у) или 2 / х /у. ,

Сложение и вычитание

Операция сложения (+) возвращает сумму двух операндов. Стандартная one рация сложения определена для типов int, ui nt, long, ulong, float, double и decimal К величинам других типов ее можно применять, если для них существует неяв ное преобразование к этим типам (см. рис. 3.1). Тип результата операции раве] наибольшему из типов операндов, но не менее i nt.

Если оба операнда целочисленные или типа decimal и результат операции слиш ком велик для представления с помощью заданного типа, генерируется исключе ние System.OverflowException1.

В проверяемом контексте. В непроверяемом исключение не выбрасывается, зато отбра сываются избыточные биты.



Все возможные значения для вещественных операндов приведены в табл. 3.5. Символами х и у обозначены конечные положительные значения, символом z - результат операции вещественного сложения. Если результат слишком велик для представления с помощью заданного типа, он принимается равным значению бесконечность , если слишком мал, он принимается за 0.

Таблица 3.5. Результаты вещественного сложения

+ 00

Операция вычитания (- ) возвращает разность двух операндов. Стандартная операция вычитания определена для типов int, ui nt, long, ulong, float, double и decimal. К величинам других типов ее можно применять, если для них существует неявное преобразование к этим типам (см. рис. 3.1). Тип результата операции равен наибольшему из типов операндов, но не менее i nt.

Если оба операнда целочисленные или типа decimal и результат операции слишком велик для представления с помощью заданного типа, генерируется исключение System.OverflowException.

Все возможные значения результата вычитания для вещественных операндов приведены в табл. 3.6. Символами х и у обозначены конечные положительные значения, символом z - результат операции вещественного вычитания. Если х и у равны, результат равен положительному нулю. Если результат слишком велик для представления с помощью заданного типа, он принимается равным значению бесконечность с тем же знаком, что и х - у, если слишком мал, он принимается за 0 с тем же знаком, что их - у.

Таблица 3.6. Результаты вещественного вычитания



Операции сдвига

Операции сдвига ( и ) применяются к целочисленным операндам. Они сдвигают двоичное представление первого операнда влево или вправо на количество

двоичных разрядов, заданное вторым операндом .

При сдвиге влево ( ) освободившиеся разряды обнуляются. При сдвиге вправо ( ) освободившиеся биты заполняются нулями, если первый операнд беззнакового типа (то есть выполняется логический сдвиг), и знаковым разрядом - в противном случае (выполняется арифметический сдвиг). Операции сдвига никогда не приводят к переполнению и потере значимости. Стандартные операции сдвига определены для типов int, ui nt, long и ulong.

Пример применения операций сдвига представлен в листинге 3.5.

Листинг 3.5. Операции сдвига using System;

namespace ConsoleApplicationl { class Classl

{ static void MainO

byte а = 3, b = 9; sbyte с = 9, d = -9;

Console.WriteLineC a 1 )

Console.WriteLineC a 2 )

Console.WriteLineC b 1 )

Console.WriteLineC с 1 )

Console.WriteLineC d 1 )

Результат 6

Результат 12

Результат 4

Результат 4

Результат -5

Операции отношения и проверки на равенство

Операции отношения (<, <=, >, >=, ==, ! = ) сравнивают первый операнд со вторым Операнды должны быть арифметического типа. Результат операции - логической типа, равен true или false. Правила вычисления результатов приведены в табл. 7

Таблица 3.7. Результаты операций отношения

Операция Результат

х == у true, если х равно у, иначе fal se

х ! = у true, если х не равно у, иначе fal se

х < у true, если х меньше у, иначе fal se

х > у true, если х больше у, иначе fal se

х <= у true, если х меньше или равно у, иначе fal se

х >= у true, если х больше или равно у, иначе fal se

Фактически, учитывается только 5 младших битов второго операнда, если первый имее тип int или ui nt, и 6 битов, если первый операнд имеет тип long или ulong.



1 ... 13 14 15 [ 16 ] 17 18 19 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика