Взятие обратного знака для чисел с плавающей запятой.
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Результатом является значение x с обратным знаком. Если x является NaN, то результат также равен NaN. Данная константа возвращается в том случае, если результат операции является неопределенным.

Пример.

double a = 0.0;

double r = 0.0;

var d = a / r;

Console.WriteLine(d);

Результат.

Минус бесконечность это результат деления отрицательного числа на нуль.

Плюс бесконечность это результат деления положительного числа на нуль.

Оператор логического отрицания .

Операции вида !x 

Существует единственный стандартный оператор логического отрицания:

bool operator !(bool x);

Этот оператор вычисляет логическое отрицание операнда. Если операнд равен true, то результат равен false. Если операнд равен false, то результат равен true.

Пример

Console.WriteLine(!true);

Console.WriteLine(!false);

Поразрядное отрицание.

Операция вида ~x результатом операции является побитовое дополнение x.

Оператор ~ выполняет операцию поразрядного дополнения операнда, заключающуюся в инвертировании каждого бита. Операторы поразрядного дополнения предопределены для типов int, uint, long и ulong

int v = 0;

Console.WriteLine("~0x{0:x8} = 0x{1:x8}", v, ~v);

Результат

int v = 0;

int vv = ~v;

Console.WriteLine("~{0:d} = {1:d}", v, vv);

 

Примеры:

static void Main(string[] args)

   {

       Console.WriteLine(~1999999999);

   }

Результат выражения -2000000000, тип – int

 

static void Main(string[] args)

   {

       Console.WriteLine(~3999999999);

   }

Результат выражения 294967296, тип – uint

 

static void Main(string[] args)

   {

       Console.WriteLine(~5999999999);

   }

Результат выражения -6000000000, тип – long

Префиксные операторы инкремента и декремента .

Стандартные операторы ++ и -- применимы к следующим типам: sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal и любым типам перечисления. Стандартный оператор ++ возвращает значение, полученное добавлением 1 к операнду, а стандартный оператор -- возвращает значение, полученное вычитанием 1 из операнда. В контексте checked если результат такого сложения или вычитания выходит за пределы допустимого диапазона для типа результата и результат имеет целый тип или тип перечисления, то возникает исключение System.OverflowException.

Примеры.

double x;

x = 1.5;

Console.WriteLine(++x);

x = 1.5;

Console.WriteLine(x++);

Console.WriteLine(x);

 

Бинарные операторы содержат два операнда и они записываются в виде инфикса (например, x + y).

Арифметические операторы

мультипликативное_выражение:
унарное_выражение
мультипликативное_выражение * унарное_выражение
мультипликативное_выражение / унарное_выражение
мультипликативное_выражение % унарное_выражение

аддитивное_выражение:
мультипликативное_выражение
аддитивное_выражение + мультипликативное_выражение
аддитивное_выражение – мультипликативное_выражение








Оператор произведения .

Произведение целых чисел. Пример.

Console.WriteLine(5 * 2);

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

Пример.

int a = 2147483647;

int b = 2147483647;

var t = a * b;

Console.WriteLine(t);

int a = 2147483647;

int b = 2147483647;

var t = checked(a * b);

Console.WriteLine(t);

Произведение чисел с плавающей запятой. Пример. Умножение числа типа int на число типа double.

var t = -.5 * 2;

Console.WriteLine(t);

 

В результате тип переменной – doudle.

 

Произведение вычисляется в соответствии с арифметическими правилами стандарта IEEE 754. В следующей таблице приведены результаты всех возможных комбинаций ненулевых конечных значений, нулей, бесконечных значений и ошибок NaN В таблице x и y являются положительными конечными значениями, а 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

 

Пример

double w1 = 1.7976931348623157E+308;

double w2 = 1.7E+3;

double w3 = w1 * w2;

 

Дата: 2019-07-30, просмотров: 223.