Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки? Спасибо! |
Основные конструкции языков Java и C#
Типы чисел с плавающей точкой
Представление типов значений с плавающей точкой, float и double, а также операции с ними, соответствуют стандарту на вычисления с плавающей точкой IEEE 754 (он же — IEC 60559) [11,12]. Согласно этому стандарту, значение такого типа состоит из знакового бита, мантиссы и экспоненты (у значения float 23 бита отводятся на мантиссу и 8, на экспоненту, у double — 52 бита на мантиссу и 11 — на экспоненту).
Помимо обычных чисел, значения обоих типов включают -0.0 (кстати, написав так, вы получите обычный 0.0, поскольку этот текст будет воспринят как константа 0.0, к которой применен унарный оператор -; единственный способ получить -0.0 — конвертировать его битовое представление — в шестнадцатеричном виде для типа float он представляется как 0x80000000, а для double — 0x8000000000000000 ), положительные и отрицательные бесконечности (для типа float это 0x7f800000 и 0xff800000, а для double — 0x7ff0000000000000 и 0xfff0000000000000 ), а также специальное значение NaN ( Not-A-Number, не число ; оно может быть представлено любыми значениями, у которых экспонента максимальна, а мантисса не равна 0 ).
Для значений с плавающей точкой определены следующие операции.
- ==, != — сравнения на равенство и неравенство. В соответствии с IEEE 754 NaN не равно ни одному числу, в том числе самому себе. -0.0 считается равным 0.0.
- <, <=, >, >= — сравнения на основе порядка. +∞ больше, чем любой обычное число и -∞, а -∞ меньше любого конечного числа. NaN несравнимо ни с одним числом, даже с самим собой — это значит, что любая указанная операция возвращает false, если один из ее операндов — NaN. -0.0 считается равным, а не меньше, чем 0.0.
-
+, -, *, /, % — сложение, вычитание, умножение, деление, взятие остатка по модулю, а также соответствующие операции присваивания с одновременным выполнением одного из этих действий. Все эти операции действуют согласно IEEE 754, кроме операции вычисления остатка, которая реализована так, чтобы при всех конечных a и b (b != 0) выполнялось a%b == a – b*n, где n — самое большое по абсолютной величине целое число, не превосходящее |a/b|, знак которого совпадает со знаком a/b. По абсолютной величине a%b всегда меньше b, знак a%b совпадает со знаком a.
Согласно стандарту IEEE 754, все арифметические операции определены для бесконечных аргументов "естественным" образом: 1.0/0.0 дает +∞ -1.0/0.0 дает -∞, 0.0/0.0 — NaN, конечное x в сумме с +∞ дает +∞, а +∞+(-∞) — NaN. Если один из операндов NaN, то результат операции тоже NaN.
- ++, -- — увеличение и уменьшение на единицу. Для бесконечностей и NaN результат применения этих операторов совпадает с операндом.