Лекция 3. Лекция 3. Переменные, операции, выражения
Скачать 103.61 Kb.
|
), часто называемое побитовым, инвертирует каждый разряд в двоичном представлении операнда типа int,uint, long или ulong.Явное преобразование типаОперация используется для явного преобразования величины из одного типа в другой. Это требуется в том случае, когда неявного преобразования не существует. При преобразовании из более длинного типа в более короткий возможна потеря информации. Формат операции: (тип)выражение Здесь тип – это имя того типа, в который осуществляется преобразование, а выражение чаще всего представляет собой имя переменной, например: long b = 300; int a = (int) b; // данные не теряются byte d = (byte) a; // данные теряются Умножение, деление и остаток от деленияОперация умножения (*) возвращает результат перемножения двух операндов. Стандартная операция умножения определена для типов int, uint, long, ulong, float,double и decimal. К величинам других типов ее можно применять, если для них возможно неявное преобразование к этим типам. Тип результата операции равен "наибольшему" из типов операндов, но не менее int. Все возможные значения для вещественных операндов приведены в таблице 3.2. Символами х и y обозначены конечные положительные значения, символом z – результат операции вещественного умножения. Если результат слишком велик для представления с помощью заданного типа, он принимается равным значению "бесконечность", если слишком мал, он принимается за 0. NaN (not a number) означает, что результат не является числом.
Операция деления (/) вычисляет частное от деления первого операнда на второй. Стандартная операция деления определена для типов int, uint, long, ulong, float, double и decimal. К величинам других типов её можно применять, если для них существует неявное преобразование к этим типам. Тип результата определяется правилами преобразования, но не меньше int. Если оба операнда целочисленные, результат операции округляется вниз до ближайшего целого числа. Если делитель равен нулю, генерируется исключение System.DivideByZeroException. Если хотя бы один из операндов вещественный, дробная часть результата деления не отбрасывается, а все возможные значения приведены в таблице3.3.
Для финансовых величин (тип decimal) при делении на 0 и переполнении генерируются соответствующие исключения, при исчезновении порядка результат равен 0. Операция остатка от деления (%) также интерпретируется по-разному для целых, вещественных и финансовых величин. Если оба операнда целочисленные, результат операции вычисляется по формуле x - (x / y) * y. Если делитель равен нулю, генерируется исключение System.DivideByZeroException. Если хотя бы один из операндов вещественный, результат операции вычисляется по формуле x – n * y, где n – наибольшее целое, меньшее или равное результату деления х на y. Все возможные комбинации значений операндов приведены в таблице3.4.
Для финансовых величин (тип decimal) при получении остатка от деления на 0 и при переполнении генерируются соответствующие исключения, при исчезновении порядка результат равен 0. Знак результата равен знаку первого операнда. |