Студопедия — Checked и unchecked 4 страница. int operator *(int x, int y); uint operator *(uint x, uint y); long operator *(long x, long y); ulong operator *(ulong x
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Checked и unchecked 4 страница. int operator *(int x, int y); uint operator *(uint x, uint y); long operator *(long x, long y); ulong operator *(ulong x






· Произведение целых чисел:

int operator *(int x, int y);
uint operator *(uint x, uint y);
long operator *(long x, long y);
ulong operator *(ulong x, ulong y);

В контексте checked если произведение выходит за пределы диапазона типа результирующего значения, возникает исключение System.OverflowException. В контексте unchecked о переполнениях не сообщается, и все старшие биты, выходящие за пределы диапазона результирующего значения, отбрасываются.

· Произведение чисел с плавающей запятой

float operator *(float x, float y);
double operator *(double x, double y);

Произведение вычисляется в соответствии с арифметическими правилами стандарта IEEE 754. В следующей таблице приведены результаты всех возможных комбинаций ненулевых значений, нулей, бесконечных значений и ошибок NaN z является результатом x * y. Если результат слишком велик для целевого типа, то z равно бесконечности. Если результат слишком мал для целевого типа, то z равно нулю.

 

  +y –y +0 –0 +∞ –∞ NaN
+x +z –z +0 –0 +∞ –∞ NaN
–x –z +z –0 +0 –∞ +∞ NaN
+0 +0 –0 +0 –0 NaN NaN NaN
–0 –0 +0 –0 +0 NaN NaN NaN
+∞ +∞ –∞ NaN NaN +∞ –∞ NaN
–∞ –∞ +∞ NaN NaN –∞ +∞ NaN
NaN NaN NaN NaN NaN NaN NaN NaN

 

· Произведение десятичных чисел.

decimal operator *(decimal x, decimal y);

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

Произведение десятичных чисел эквивалентно использованию оператора произведения типа System.Decimal.

7.7.2 Оператор деления;

Для операции вида x / y чтобы выбрать конкретную реализацию оператора, применяется разрешение перегрузки бинарного оператора (§7.2.4). Операнды преобразуются в типы параметров выбранного оператора, а тип результата является типом возвращаемого значения этого оператора.

Ниже перечислены стандартные операторы деления. Все операторы вычисляют частное x и y.

· Деление целых чисел:

int operator /(int x, int y);
uint operator /(uint x, uint y);
long operator /(long x, long y);
ulong operator /(ulong x, ulong y);

Если значение правого операнда равно нулю, возникает исключение System.DivideByZeroException.

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

Если левый операнд является самым малым представимым значением int или long, а правый операнд равен –1, происходит переполнение. В контексте checked это приводит к возникновению исключения System.ArithmeticException (или его подкласса). В контексте unchecked возникновение исключения System.ArithmeticException (или его подкласс) или выдача сообщения о переполнении (с передачей результирующего значения равным левому операнду) определяется реализацией.

· Деление чисел с плавающей запятой:

float operator /(float x, float y);
double operator /(double x, double y);

Частное вычисляется в соответствии с арифметическими правилами стандарта IEEE 754. В следующей таблице приведены результаты всех возможных комбинаций ненулевых значений, нулей, бесконечных значений и ошибок NaN z является результатом x / y. Если результат слишком велик для целевого типа, то z равно бесконечности. Если результат слишком мал для целевого типа, то z равно нулю.

 

  +y –y +0 –0 +∞ –∞ NaN
+x +z –z +∞ –∞ +0 –0 NaN
–x –z +z –∞ +∞ –0 +0 NaN
+0 +0 –0 NaN NaN +0 –0 NaN
–0 –0 +0 NaN NaN –0 +0 NaN
+∞ +∞ –∞ +∞ –∞ NaN NaN NaN
–∞ –∞ +∞ –∞ +∞ NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN

 

· Деление десятичных чисел:

decimal operator /(decimal x, decimal y);

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

Деление десятичных чисел эквивалентно использованию оператора деления типа System.Decimal.

7.7.3 Оператор остатка;

Для операции вида x % y чтобы выбрать конкретную реализацию оператора, применяется разрешение перегрузки бинарного оператора (§7.2.4). Операнды преобразуются в типы параметров выбранного оператора, а тип результата является типом возвращаемого значения этого оператора.

Ниже перечислены стандартные операторы остатка. Все операторы вычисляют остаток деления x и y.

· Остаток для целых чисел:

int operator %(int x, int y);
uint operator %(uint x, uint y);
long operator %(long x, long y);
ulong operator %(ulong x, ulong y);

Результатом выражения x % y является значение x – (x / y) * y. Если y равно нулю, возникает исключение System.DivideByZeroException.

Если левый операнд является минимальным значением типа int или long, а правый операнд равен -1, то возникает исключение System.OverflowException. Если x / y не порождает исключения, x % y также не порождает исключения.

· Остаток для чисел с плавающей запятой:

float operator %(float x, float y);
double operator %(double x, double y);

В следующей таблице приведены результаты всех возможных комбинаций ненулевых значений, нулей, бесконечных значений и ошибок NaN z является результатом x % y и вычисляется как x – n * y, где n является максимальным возможным целым числом, меньшим или равным x / y. Этот метод вычисления остатка аналогичен методу, используемому для целых операндов, но отличается от определения по стандарту IEEE 754 (в котором n является целым числом, ближайшим к x / y).

 

  +y –y +0 –0 +∞ –∞ NaN
+x +z +z NaN NaN x x NaN
–x –z –z NaN NaN –x –x NaN
+0 +0 +0 NaN NaN +0 +0 NaN
–0 –0 –0 NaN NaN –0 –0 NaN
+∞ NaN NaN NaN NaN NaN NaN NaN
–∞ NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN

 







Дата добавления: 2015-09-07; просмотров: 480. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Измерение следующих дефектов: ползун, выщербина, неравномерный прокат, равномерный прокат, кольцевая выработка, откол обода колеса, тонкий гребень, протёртость средней части оси Величину проката определяют с помощью вертикального движка 2 сухаря 3 шаблона 1 по кругу катания...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия