OPERACIONES OPERACIONES ARITMETICAS

Los operadores aritméticos se utilizan para realizar muchas de las operaciones aritméticas habituales que implican el cálculo de valores numéricos representados por literales, variables, otras expresiones, llamadas a funciones y propiedades, y constantes. También se clasifican como operadores aritméticos los operadores de desplazamiento de bits, que actúan al nivel de bits individuales de los operandos y cambian sus modelos de bits a la izquierda o la derecha.

Operaciones aritméticas

+ (Operador, Visual Basic) o restar un valor de otro con el - (Operador, Visual Basic), como se muestra en el siguiente ejemplo.

 
Dim x As Integer
x = 67 + 34
x = 32 - 12


- (Operador, Visual Basic), pero con un solo operando, como se puede ver en el ejemplo siguiente.

 
Dim x As Integer = 65
Dim y As Integer
y = -x


* (Operador, Visual Basic) y / (Operador, Visual Basic), respectivamente, como se muestra en el ejemplo siguiente.

 
Dim y As Double
y = 45 * 55.23
y = 32 / 23


^ (Operador, Visual Basic), como se puede ver en el ejemplo siguiente.

 
Dim z As Double
z = 23 ^ 3
' The preceding statement sets z to 12167 (the cube of 23).


La división de enteros se lleva a cabo con el \ (Operador, Visual Basic)La división de enteros devuelve el cociente, es decir, el número entero que representa el número de veces que puede se puede dividir dividendo entre el divisor sin tener en cuenta el valor del resto. SByte,ByteShortUShortIntegerUIntegerLong y ULong) para este operador. Todos los demás tipos deben convertirse antes a tipos enteros. El ejemplo siguiente ilustra la división de enteros.

 
Dim k As Integer
k = 23 \ 5
' The preceding statement sets k to 4.


El módulo aritmético se calcula con el Mod (Operador, Visual Basic)Este operador devuelve el resto después de dividir el divisor por el dividendo un número integral de veces. Si tanto el divisor como el dividendo son tipos enteros, el valor devuelto es entero. Si el divisor y el dividendo son tipos de punto flotante, el valor devuelto es una variable de punto flotante. En el siguiente ejemplo se muestra este comportamiento.

 
Dim x As Integer = 100
Dim y As Integer = 6
Dim z As Integer
z = x Mod y
' The preceding statement sets z to 4.


 
Dim a As Double = 100.3
Dim b As Double = 4.13
Dim c As Double
c = a Mod b
' The preceding statement sets c to 1.18.


b6ex274z.collapse_all(es-es,VS.120).gifIntento de dividir por cero

La división por cero produce resultados diferentes dependiendo de los tipos de datos que se utilicen. SByteByteShortUShortIntegerUIntegerLongULong), .NET Framework inicia una excepción DivideByZeroExceptionDecimal o Single, .NET Framework también produce una excepción DivideByZeroException.

En las divisiones de punto flotante que impliquen el tipo de datos Double, no se produce ninguna excepción y el resultado es el miembro de clase que representa NaNPositiveInfinity o NegativeInfinity, dependiendo del dividendo. Double por cero.

 

Tipo de datos del dividendo

Tipo de datos del divisor

Valor del dividendo

Resultado

Double

Double

0

NaN (no es un número definido matemáticamente)

Double

Double

> 0

PositiveInfinity

Double

Double

< 0

NegativeInfinity

Cuando se detecta una excepción DivideByZeroException, puede utilizar los miembros de la excepción para controlarla. Message contiene el texto del mensaje de la excepción. Instrucción Try...Catch...Finally (Visual Basic).

Operaciones de desplazamiento de bits

 

Una operación de desplazamiento de bits realiza un desplazamiento aritmético sobre un modelo de bits. El patrón está contenido en el operando de la izquierda, mientras que el operando de la derecha especifica el número de posiciones que debe desplazarse el modelo. >> (Operador, Visual Basic) o a la izquierda con << (Operador, Visual Basic).

El tipo de datos del operando del modelo debe ser SByteByteShortUShortIntegerUIntegerLong oULongInteger o se debe ampliar aInteger.

Los desplazamientos aritméticos no son circulares, lo que significa que los bits desplazados a un extremo del resultado no se vuelven a introducir en el otro extremo. Las posiciones de bits que quedan vacantes debido a un desplazamiento se establecen de la siguiente manera:

  • 0 para un desplazamiento aritmético a la izquierda

  • 0 para un desplazamiento aritmético a la derecha de un número positivo

  • ByteUShortUInteger,ULong)

  • SByteShortInteger o Long)

Integer tanto a la izquierda como a la derecha.

 
Dim lResult, rResult As Integer
Dim pattern As Integer = 12
' The low-order bits of pattern are 0000 1100.
lResult = pattern << 3
' A left shift of 3 bits produces a value of 96.
rResult = pattern >> 2
' A right shift of 2 bits produces value of 3.


Los desplazamientos aritméticos nunca generan excepciones de desbordamiento.

Operaciones bit a bit

 

Además de ser operadores lógicos, NotOrAnd y Xor también realizan operaciones aritméticas bit a bit cuando se utilizan en valores numéricos. Operadores lógicos y bit a bit en Visual Basic.

Seguridad de tipos

 

Normalmente, los operandos deben ser del mismo tipo. Integer, debe sumarla a otra variable Integer y asignar el resultado a una variable que también sea del tipoInteger.

Una manera de asegurar unas buenas prácticas de codificación con seguridad de tipos consiste en usar la Option Strict (Instrucción)Option Strict On, Visual Basic realiza automáticamente las conversiones con seguridad de tiposInteger a una variable Double y asignar el valor a una variable de tipo Double, la operación se realizará normalmente, porque un valor Integer puede convertirse aDouble sin pérdida de datos. Option Strict OnInteger a una variable Double y asignar el valor a la variable Integer, se produce un error del compilador, porque una variable Double no se puede convertir implícitamente al tipo Integer.

Sin embargo, si establece Option Strict Off, Visual Basic permite que se efectúen conversiones implícitas de restricción, aunque pueden dar como resultado la pérdida inesperada de datos o de precisión. Option Strict On al escribir el código de producción. Conversiones de ampliación y de restricción (Visual Basic).

                                                                                                                                                                                     ING:   yordy quispicusi perez