Операторы. арифметические действия

Начнем нашу работу с минимальной программы, написанной на языке Java, которая просто-напросто пока выводит на консольное окно вот такой текст:’ it is program My2′. Эту программу назовем My2, и сохраним ее на жестком диске. Для этого щелкнем на вот этой кнопке сохранения. Откроем новую папку, которую назовем My2. Щелкнем на ней дважды, чтобы туда зайти и выберем имя нашего файла. Как мы помним, оно должно быть точно такое же, как и название нашего класса, причем с учетом регистра.

Т.е. первая буква М, в нашем случае должна быть большая. Наберем My2 и щелкнем на кнопку Сохранить. Тип файла Java у нас есть, поэтому все остальное у нас остальное нормально. Теперь же рассмотрим вопрос, как в языке Java используется операторы. Для выполнения обычных арифметических операций сложения, вычитания, умножения и деления, в языке Java используется стандартные знаки, плюс, минус, знак умножения — звездочка, деление — косая черта, также проценты, это остаток от деления

целых чисел. Напишем, например, маленький пример, при помощи которого используем вот эти несколько арифметических операций.

Например, создадим переменную а класса integer, присвоим ей значение, например, 1+3, далее возьмем опять целое число, пусть это будет b, которому присвоим значение a умножить на 3, точка с запятой. Далее возьмем целое число c, которому мы присвоим значение b деленное на 5, например. Точка с запятой. Затем возьмем целое число d, которому присвоим значение Ъ-а. Ну и тут же на этой же строчке возьмем еще одну переменную c, которой присвоим значение минус d. Теперь же попробуем все эти числа вывести на наше консольное окно. Для этого воспользуемся вот этим оператором println. Выделим его. Далее правая кнопка мыши, Сору. И сюда вставим. Правая кнопка, Paste.

Теперь напишем таким образом, кавычки, это у нас сначала будет переменная А, далее плюс и выведем ее значение a. Закроем скобку. Точка с запятой. Правая кнопка. Paste. Выведем на этот раз переменную В. Далее то же самое с переменной c. И затем то же самое с переменной d. И последняя переменная, это переменная e. Тут мы допустили ошибку, у нас c повторяется два раза. Конечно же, следующую переменную нужно было обозначить, следующей буквой e. Вставим сюда и выведем на экран значение переменной e. Закрыть скобку. Точка с запятой.

Введем еще одну переменную. Пусть эта будет f, которой присвоим значение, например, b и остаток по модулю, т. е. вот этот значок проценты и далее 5. Остаток по модулю при делении на 5. Выведем значение этой переменной на экран. Правая кнопка мыши, Paste, далее f, равняется и его значение. Теперь же скомпилируем эту программу. Для этого, как всегда нам нужен Tools. Далее Compile Java. Компиляция прошла успешно, и поэтому теперь мы можем его запустить на выполнение.

Для этого Tools и Run Java Application. Вот мы видим результат выполнения нашей программы. Первой строчкой является та строка, которая у нас была здесь: ‘it is program My2’. А далее у нас идут значения наших переменных. Переменная a равна 4, что в принципе и понятно, b — это у нас будет 4 умноженное на 3, будет 12, а c у нас будет 2, поскольку получается, как деление b на 5, но поскольку целиком 12 на 5 не делится, то это у нас целочисленное деление.

Далее у нас значение d, которое равняется Ъ-a, 12- 4=8, все правильно и затем переменной e мы присвоим значение d с обратным знаком. Получается (8). И последнее значение f, это целочисленное деление числа Ъ, которое равно 12, на 5, что остается в остатке число 2. Закроем это окно, щелкнем на этом крестике. Наряду с обычными арифметическими операциями, широко используется и арифметические операции сокращенного вида, которая позволяет выполнять дополнительные операции. Например, вместо операции

a, равняется a+4, вот вместо этой операции можно написать операцию при помощи вот этого оператора плюс равно. Т.е. вместо него, можно написать такое выражение, что несколько сокращает внешний вид этой строчки. a+ =4. Что по результату абсолютно одно и тоже.

Такие сокращения операторы обычно получаются приписыванием пред символом равно, соответствующих арифметических символов — плюс, минус, умножения и т.д. Выполним еще несколько операций. Увеличим, Ъ, например, в 3 раза. Для этого пишем Ъ, далее знак умножения равно и 3. переменную с тоже увеличим. Плюс — равно. Увеличим на значение a+Ъ. И далее напишем значение c, как остаток по модулю от деления, например, на 5.

Теперь же выведем все эти значения a, Ъ и c на экран. Для этого нам вполне нужно скопировать вот эти 4 строчки. Выделим. Далее правая кнопка мыши и Сору. Вставим сюда. Правая кнопка и Paste. Теперь, единственное нам, осталось выполнить еще одну операцию с переменной d, с ней мы ничего не делали. Поэтому, например, для d применим вот этот последний неиспользуемый нами оператор: минус равно, т.е. увеличим значение d на какое-либо выражение. Например, уменьшим на 3 единицы.

В принципе мы можем выровнять все эти строчки, чтобы все они были одинаковыми. И после этого, попробуем скомпилировать эту программу. Для этого, пункт меню Tools, далее Compile Java, все прошло успешно. Переключимся на Java и запустим теперь наше приложение Run Java Application. Вот мы можем видеть результат выполнения нашей программы. Число «a» у нас увеличилось на 4. Если оно раньше было 4, еще 4. то получилось значение 8. «Ъ», же у нас увеличилось в 3 раза. Вместо 12 стало 36. «c», после выполнения вот этих двух операции, увеличение на a+Ъ и далее целочисленное деление на 5, стало единицей, как остаток от деления на 5, а «d» мы уменьшили на 3 и вместо 8 стало 5. Т.е. все операции опять у нас прошли нормально.

Закроем теперь это приложение. Щелкнем на этом крестике и вернемся в наш обычный текстовый редактор. Программисты, которые часто сталкиваются с разного рода программами, конечно же, знают, что одним из самых распространенных действий над числовыми переменными, являются увеличение и уменьшение их значения на единицу. И для этих действий, так же, как и в языке Сі и C++, в языке Java есть специальные операторы. Например, если мы напишем, таким образом, a++, то после выполнения этой операции, значение a увеличится на единицу. А если напишем b-, то b уменьшится на единицу.

Эти операторы ++ и — можно использовать не только отдельно, для увеличения и уменьшения на единицу, но и внутри выражения. Например, таким образом. Создадим переменную типа integer к\, пусть его значение будет 5. Запятая. Создадим еще переменную к2, которой присвоим тоже значение 5 и далее напишем такие выражения: int si, которое будет равняться 2 умноженное на ++ к1.

Теперь напишем, практически, такое же выражение: int s2, равняется 2 умножить, но напишем теперь не ++ к1, а к2 и затем ++, т.е. переставим плюс и переменную местами. Посмотрим теперь, что у нас получилось. Для этого выведем это значение на экран, скопируем вот эту строчку. Правая кнопка мыши, Сору. Далее вставим сюда. Правая кнопка мыши, Paste. Выведем значение к1. Для этого напишем, таким образом, в кавычках к1 равняется, затем само значение к1. Теперь выведем значение s1. Равняется. s1, закрыть скобку, точка с запятой.

Теперь опять вставим этот текст. Paste. Кавычки. На этот раз нам нужно значение к2. Равняется. Кавычки. Само к2. Теперь выведем s2. Кавычки и плюс s2. Теперь попробуем скомпилировать эту программу и выполнить ее. Для этого Tools, Compile Java. Все прошло успешно, и теперь запустим саму программу: Run Java Application. И вот можно видеть, что у нас получилось: к1 и к2 у нас стало по 6 их значение. Мы присвоили им 5 и далее при выполнении вот этих выражений, каждая из них увеличилась на единицу, в связи с тем, что около них не написали ++. А вот значение s1 и s2 у нас разное. s1 — 12, а s2 — 10. Дело в том, что если ++ у нас написан спереди, то сначала происходит увеличение к1 на единицу и затем вот это полученное выражение 6, уже используется для дальнейших вычислений. В результате чего и получается 6х2=12.

А при вычислении s2, тут дело происходит немножко по-другому. Для вычисления вот этого выражения s2, берется старое значение к2, 5 и 2 раза 5 получается 10, и лишь после этого к2 увеличивается на единицу. Закроем теперь это окно. Щелкнем на вот этом крестике.

⇐Символьный и булевый типы данных | TeachPro WEB-дизайн | Битовые операции. математические функции⇒

Операторы

Вы здесь: Главная >> Java-учебник >> Операторы



Для обозначения операций сложения, вычитания, умножения и деления в языке Java используются обычные арифметические операторы + — * /.

Оператор / обо­значает целочисленное деление, если оба его аргумента являются целыми числами. В противном случае этот оператор обозначает деление чисел с плавающей точкой. Остаток от деления целых чисел (т.е. функция mod) обозначается символом %.
На­пример, 15/2 равно 7, 15%2 равно 1, а 15 . 0/2 равно 7 . 5.

Заметим, что целочисленное деление на 0 возбуждает исключительную ситуацию, в то время как результатом деления на 0 чисел с плавающей точкой является беско­нечность или NaN.

Арифметические операторы можно использовать для инициализации переменных.

int n = 5;
int а = 2 * n; // Значение переменной а равно 10.

В операторах присваивания удобно использовать сокращенные бинарные ариф­метические операторы.

Например, оператор
х + = 4;
эквивалентен оператору
х = х + • 4;

(Сокращенные операторы присваивания образуются путем приписывания символа арифметической операции, например * или %, перед символом =, например *=или %=. )

Одной из заявленных целей языка Java является машинная независимость.

Вы­числения должны приводить к одинаковому результату, независимо от того, какая виртуальная машина их выполняет. Для арифметических вычислений над числами с плавающей точкой это неожиданно оказалось трудной задачей. Тип double для хранения числовых значений использует 64 бит, однако некоторые процессоры применяют 80-разрядные регистры с плавающей точкой. Эти регистры обеспечи­вают дополнительную точность на промежуточных этапах вычисления, Рассмот­рим в качестве примера следующее выражение:

double w = х * у / z;

Многие процессоры компании Intel вычисляют выражение х * у и сохраняют этот промежуточный результат в 80-разрядном регистре, затем делят его на значение переменной z и в самом конце округляют ответ до 64 бит. Так можно повысить точ­ность вычислений, избежав переполнения. Однако этот результат может оказаться иным, если в процессе всех вычислений используется 64-разрядный процессор.

По этой причине в первоначальном описании виртуальной машины Java указывалось, что все промежуточные вычисления должны округляться. Это возмутило компью­терное сообщество. Переполнение могут вызвать не только округленные вычисле­ния. На самом деле они выполняются медленнее, чем более точные вычисления, поскольку операции округления занимают определенное время. В результате раз­работчики языка Java изменили свое мнение, стремясь разрешить конфликт между оптимальной производительностью и отличной воспроизводимостью результатов.

По умолчанию разработчики виртуальной машины теперь позволяют использовать расширенную точность в промежуточных вычислениях. Однако методы, помеченные ключевым словом strictfp,должны использовать точные операции над числами с плавающей точкой, что гарантирует воспроизводимость результатов. Например, метод main можно пометить ключевыми словами, как показано ниже:
public static strictfp void main(String[] args)

В этом случае все команды внутри метода main будут выполнять точные операции над числами с плавающей точкой.

Детали выполнения этих операций тесно связаны с особенностями работы про­цессоров Intel. По умолчанию промежуточные результаты могут использовать расширенный показатель, но не расширенную мантиссу. (Микросхемы компании Intel поддерживают округление мантиссы без потери производительности.) Сле­довательно, единственное различие между вычислениями по умолчанию и точны­ми вычислениями состоит в том, что точные вычисления могут приводить к пере­полнению, а вычисления по умолчанию — нет.

Если при чтении этого замечания ваш взгляд потускнел, не волнуйтесь. Для боль­шинства программистов этот вопрос совершенно не важен. Переполнение при вычислениях чисел с плавающей точкой в большинстве случаев не возникает. В этой книге мы не будем использовать ключевое слово strictfp.

Операторы инкрементации и декрементации

Программисты, конечно, знают, что одной из наиболее распространенных опера­ций с числовыми переменными является добавление или вычитание единицы. В язы­ке Java, как и в языках С и C++, есть операторы инкрементации и декрементации: оператор х++ добавляет единицу к текущему значению переменной х, а оператор х- — вычитает из него единицу.

Например, код
int n = 12;
n++;
делает значение переменной n равным 13.

Поскольку эти операторы изменяют зна­чение переменной, их нельзя применять к самим числам. Например, оператор 4++ является недопустимым.

Существует два вида этих операторов. Выше показана «постфиксная» форма опе­ратора, в которой символы операции размещаются после операнда. Есть и «префиксная» форма— ++n.
Оба этих оператора увеличивают значение переменной на единицу. Разница между ними проявляется, только когда эти операторы использу­ются внутри выражений. Префиксная форма оператора инкрементации сначала до­бавляет единицу к значению переменной, в то время как постфиксная форма исполь­зует старое значение этой переменной.

int m = 7;
int n = 7;
int а = 2 * ++m; // Теперь значение а равно 16, a m — 8.


int b = 2 * n++; // Теперь значение b равно 14, a n — 8.

Мы не рекомендуем использовать оператор инкрементации ++ внутри выраже­ний, поскольку это зачастую приводит к запутанному коду и досадным ошибкам.

(Поскольку именно оператор ++ дал имя языку C++, это послужило поводом к пер­вой шутке о нем. Недоброжелатели указывают, что даже имя этого языка содержит в себе ошибку: «Кроме всего прочего, этот язык следовало бы назвать ++С, потому что мы хотим использовать этот язык только после его улучшения».)

Сергей Владимирцев
28.01.2011

Калькулятор целочисленного деления

Найдите целое частное от деления.

Примеры:

  • Целочисленное деление 26/11
  • Целочисленное деление 11/2

#

Что такое целочисленное деление?

Целочисленное деление определяется как деление, в котором остаток (дробная часть) просто уронить или выбросить, независимо от того, насколько он велик.

Таким образом, результирующее значение целочисленного деления всегда является целым числом.

Например: (делимое) 12/3 (делитель) = 4 (частное).

#

Как вычислить целочисленное деление?

Целочисленное деление можно рассчитать, следуя основным правилам:

  • Деление целых чисел с положительными знаками

    Когда положительное целое число делится на другое положительное целое число, результат всегда будет положительным.

    Пример:
    (+6) / (+2) = (+3)

  • Деление целых чисел с отрицательными знаками

    Когда отрицательное целое число делится на отрицательное целое число, результат всегда будет положительным.

    Пример:

    (-6) / (-2) = (3)

  • Деление целых чисел с разными знаками

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

    Пример:
    (+6) / (-2) = (-3)

#

Примеры целочисленного деления

Разделение: -12 / -5

Решение:
  1. Первый шаг — найти абсолютные значения (значения без знака) заданных целых чисел.

    |-12|=12

    |-5|=5

  2. Далее нужно разделить числа и найти их частное.

    12 / 5 = 2,4 = 2

    Здесь мы отбросим дробную часть.

  3. В конце вы должны оценить ответ. Так как мы делим целые числа, имеющие одинаковые знаки, т.е. отрицательный. Так, что результирующая будет иметь положительный знак.

    (-12) / (-5) = +2

В случае трех целых чисел: -82 / +3 / -7

Решение:

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

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

  1. -82/+3/-7 = (-82/+3)/-7
  2. -82 делится на +3, получается -27.

  3. Это отрицательное частное, так как мы делим два целых числа с разными знаками.

    (-82 / +3) = (-27,3) = (-27)

    Здесь мы отбросим дробную часть.

    Поскольку мы делим два целых числа с разными знаками, результирующее значение будет отрицательным.

  4. Теперь мы берем это частное и делим его на следующее целое число.

    (-27) / -7 = +5,4= +5

    Здесь мы отбросим дробную часть. Поскольку оба значения имеют одинаковые знаки, ответ будет иметь положительный знак



Популярные результаты
  • 25 разделить на 2 целое деление
  • 12 разделить 8 целочисленное деление
  • 56 разделить на 7 целых делений
  • 99 разделить на 7 целых делений
  • 100 разделить 50 целое деление
  • 40 разделить на 8 целых делений
  • 90 разделить 22 целых деления
  • 39 разделить на 2 целых деления
  • 12 разделить 10 целое деление
  • 13 разделить на 2 целое деление
  • 9 разделить 2 целочисленное деление
  • 22 разделить на 8 целочисленное деление
  • 10 разделить на 4 целых деления
  • 19 разделить 2 целое деление
  • 9 разделить 4 целочисленное деление
  • 15 разделить на 4 целочисленных деления
  • 5 разделить 3 целочисленное деление
  • 15 разделить на 2 целое деление
  • 24 разделить на 5 целочисленное деление
  • 24 разделить на 2 целых деления

Целочисленное деление и модуль — основы программирования

Кеннет Лерой Басби

Обзор

В целочисленном делении и по модулю делимое делится на делитель на целое частное и остаток. Операция целочисленного частного называется целочисленным делением, а операция целочисленного остатка — модулем. [1] [2]

Обсуждение

К тому времени, когда мы достигаем совершеннолетия, мы обычно думаем о делении как о результате, которое может иметь дробную часть (тип данных с плавающей запятой). Этот тип деления известен как деление с плавающей запятой. Однако деление, когда оба операнда имеют целочисленный тип данных, может действовать по-разному, в зависимости от языка программирования, и называется:  целочисленное деление . Рассмотрим:

11/4

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

Целочисленное деление, как учили в начальной школе.

В реальном мире обработки данных есть вещи, которые всегда обрабатываются целыми единицами или числами (целочисленный тип данных). Фракций просто не существует.   Чтобы проиллюстрировать наш пример: у меня есть 11 долларовых монет, которые нужно раздать поровну моим 4 детям. Сколько получит каждый? Ответ: 2, при этом у меня еще осталось 3 (или еще 3 в руке). Ответ не 2 ¾ на каждого или 2,75 на каждого ребенка. Долларовые монеты не делятся на дробные части. Не пытайтесь мыслить нестандартно и притворяться пиратом. Используя топор, разрубите 3 оставшиеся монеты на части по восемь штук. Затем, давая каждому ребенку по 2 монеты и 6 штук по восемь, или 2 6/8, или 2 ¾, или 2,75. Если вы действительно так думаете, я поменяю свой пример на банки томатного супа. Я предлагаю вам попробовать нарезать три банки супа и дать каждому ребенку по ¾ банки. Еще лучше, живые существа, такие как щенки. После того, как вы разделите их топором, большинство детей не захотят ¾ собаки.

Что такое модуль ? Это другая часть ответа для целочисленного деления. Это остаток. Помните, в начальной школе вы говорили: «Одиннадцать разделить на четыре равно двум остатку три». Во многих языках программирования символом оператора модуля является знак процента (%).

11 % 4

Таким образом, ответ или значение этого выражения равно 3 или остатку целочисленного деления.

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

Пусть вас не смущают следующие предметы.

6 / 24 отличается от 6 % 24

Сколько раз можно разделить 24 на 6? Шесть разделить на 24 равно нулю. Это отличается от: Какой остаток от деления 6 на 24? Шесть, остальная часть дается по модулю.

Вычислите следующие выражения деления:

  1. 14/4
  2. 5 / 13
  3. 7 / 2.0

Оцените следующие выражения модуля:

  1. 14 % 4
  2. 5 % 13
  3. 7 % 2,0

Основные термины

целочисленное деление
Деление без дробных частей.