Арифметические операции. Компьютеры почти всегда что-то считают

Компьютеры почти всегда что-то считают. Собственно само слово computer означает вычислитель. В этой области даже самый слабенький процессор намного превосходит человеческий мозг.

static void Main(string[] args)

{

int a = 5;

int b = 2;

System.Console.WriteLine("a = " + a + ", b = " + b);

int result = a + b;

System.Console.WriteLine("Сложение, a + b = " + result);

result = a * b;

System.Console.WriteLine("Умножение, a * b = " + result);

result = a / b;

System.Console.WriteLine("Деление, a / b = " + result + " a и b - целые числа, деление только нацело");

double resultDouble = a / b;

System.Console.WriteLine("Деление, a / b = " + resultDouble + " все равно что-то не так...");

double aDouble = 5;

resultDouble = aDouble / b;

System.Console.WriteLine("Деление, a / b = " + resultDouble);

System.Console.ReadLine();

}

Почему произошло столь странное недоразумение с дробным числом во второй раз? Все дело в том, что внутри одной строки мы выполнили сразу несколько операций. А в каком порядке они выполняются? В порядке приоритета. И у оператора присваивания =, который записывает данные в переменную, этот приоритет один из самых низких

Сначала выполнилось деление двух целочисленных переменных a и b и только после этого целый результат деления записался в дробную переменную doubleResult.

Таблица 1 Приоритеты операций

Приоритет Категория Операции Порядок
  Первичные (expr); x.y; f(x); a[x]; x++; x new; sizeof(t); typeof(t); checked(expr); unchecked(expr) Слева направо
  Унарные + -! ~ ++x --x (T)x См. выше
  Мультипликативные (Умножение) - * / % См. выше
  Аддитивные (Сложение) + - См. выше
  Сдвиг << >> См. выше
  Отношения, проверка типов < > <= >= is as См. выше
  Эквивалентность ==!= См. выше
  Логическое И & См. выше
  Логическое исключающее ИЛИ (XOR) ^ См. выше
  Логическое ИЛИ (OR) | См. выше
  Условное И && См. выше
  Условное ИЛИ || См. выше
  Условное выражение ?: Справа налево
  Присваивание = *= /= %= += -= <<= >>= &= ^= |= См. выше

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

static void Main(string[] args)
{
 
}

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: