@EVAL[expresión[=formato de visualización]]: Evalúa una expresión matemática y devuelve su valor en el formato especificado por desplegar formato o en el formato predeterminado. Interpretación de parámetros  a continuación se describe lo que expresión puede contener. Precisión de visualización y formato de salida A continuación se explica el formato del resultado.

 

La expresión puede contener variables de entorno y otras funciones variables, y puede utilizar cualquiera de los operadores que se enumeran a continuación. @EVAL también admite paréntesis (para controlar el orden de evaluación), comas, hexadecimales y separadores decimales. Los paréntesis se pueden anidar. @EVAL eliminará los ceros iniciales y finales del resultado a menos que utilice los operadores de formato de salida.

 

@EVAL admite números muy grandes. El tamaño máximo es 2,147,483,647 dígitos en Windows x64. (Windows x86 estará limitado por la memoria a mucho menos). Si desea utilizar más valores decimales que los predeterminados, deberá cambiar las opciones de configuración de @Eval Precision o utilizar el formato "=xy" en @EVAL. Los operadores de solo números enteros (AND, OR y XOR) están limitados a enteros de 64 bits.

 

Un paso        Interpretación de parámetros

Un paso        Operadores aritméticos

Un paso        Funciones trigonométricas y trascendentales.

Un paso        Otras funciones

Un paso        Orden de precedencia

Un paso        Precisión de los cálculos internos.

Un paso        Precisión de visualización y formato de salida

Un paso        Ejemplos

 

Interpretación de parámetros

 

expresión puede contener variables ambientales e internas, variables de matrizy funciones variables. Después de que se hayan expandido todas las variables y funciones, debe estar compuesto únicamente por cadenas numéricas y nombres de funciones en Funciones trigonométricas y trascendentales. or Otras funciones, conectado por Operadores aritméticos y opcionalmente agrupados entre paréntesis.

 

@EVAL te permite simplificar expresión dejando caer el % marca de porcentaje delante de los nombres de Variables de entorno. Esto también evita que TCC-RT analizador de expandir (posiblemente erróneamente) variables antes de pasarlas a @EVAL. Debes incluir % para variables internas y funciones variables. @EVAL También le permite utilizar caracteres que normalmente tienen un significado especial para TCC-RT por ejemplo, & ^ | sin desactivar su significado especial ni citarlos.

 

Nota: Para asegurar eso expresión se interpreta correctamente, espacios deben colocarse a ambos lados de cada operador y los paréntesis deben usarse generosamente. Por ejemplo:

 

%@eval[(20 %% 3) + 4]

%@eval[12 y 65]

 

@EVAL acepta números en la sintaxis del exponente de notación científica; es decir, 1575e-2 = 15.75. Puede especificar la salida de notación científica con la sintaxis @eval[...=E]. Por ejemplo:

 

eco %@eval[1.4567e+4*7.6541e+2=E]

 

Puede combinar =E con una precisión de visualización (ver más abajo):

 

echo %@eval[1.4567e+4*7.6541e+2=E1. 20]

 

Base numérica

 

Si una cadena comienza con los caracteres 0x se interpreta como un número entero en notación hexadecimal. Si una cadena comienza con los caracteres 0b se interpreta como un número entero en notación binaria. Cualquier otra cadena numérica se considera un número decimal.

 

Por ejemplo:

 

[C:\] eco %@eval[0x10 + 16]

32

 

Puede especificar salida hexadecimal con la sintaxis especial @eval[...=H]. Por ejemplo:

 

  eco %@eval[3*6=H]

 

saldrá 12 (maleficio). sin liderazgo 0x está incluido en la salida. Para convertir entre formatos decimal y hexadecimal, consulte la @CONVERTIR función.

 

Puede especificar salida binaria con la sintaxis especial @eval[...=B]. Por ejemplo:

 

eco %@eval[3*6=B]

 

La salida hexadecimal y binaria está limitada a enteros de 64 bits (con signo).

 

Operadores aritméticos

 

Cada operador acepta parámetros tanto enteros como no enteros, excepto lo que se indica a continuación.

 

Operadores que aceptan parámetros fraccionarios

 

+(con un parámetro) signo del parámetro numérico (por ejemplo, +3)
+(con dos parámetros) suma
-(con un parámetro) negación de parámetro simbólico (p. ej., -n) o signo de parámetro numérico (p. ej., -1, +3)
-(con dos parámetros) resta
*multiplicación
/división
**exponenciación
!booleano no

 

Operadores que requieren parámetros enteros

 

\división de enteros (devuelve la parte entera del cociente)
MODmódulo (devuelve el resto cuando el primer parámetro se divide por el segundo)
%%mismo como MOD
SHLdesplazamiento aritmético hacia la izquierda del primer parámetro, truncado hacia cero a un número entero, por el número de bits especificado por el segundo parámetro
<<mismo como SHL
SHRdesplazamiento aritmético a la derecha del primer parámetro, truncado hacia cero a un número entero, por el número de bits especificado por el segundo parámetro
>>mismo como SHR
>mayor que
<menos que

 

Operadores que truncan parámetros a números enteros

 

Ybit a bit y (devuelve 1 para cada posición de bit donde los bits correspondientes en ambos parámetros son 1)
&mismo como Y
ORbit a bit o (devuelve 1 para cada posición de bit donde el bit correspondiente en al menos un parámetro es 1)
|mismo como OR
GRATISexclusivo bit a bit o (devuelve 1 para cada posición de bit donde los bits correspondientes de los dos parámetros son diferentes)
^mismo como GRATIS
~unario NO

 

Funciones trigonométricas y trascendentales.

 

expresión puede incluir las funciones trigonométricas y trascendentales siguientes. El argumento se interpreta en radianes.

 

log (x)logaritmo natural
log2 (x)logaritmo binario
log10 (x)registro 10
exp (x)exponencial
pecado (x)seno
asin (x)arcoseno
nacimiento (x)seno hiperbólico
cos (x)coseno        
acos (x)arcocosina        
cosh (x)coseno hiperbólico        
bronceado (x)tangente        
atan (x)arcangent        
tanh (x)tangente hiperbólica

 

La cuerda especial PI es un atajo para el valor 3.14159265358979323846.

 

Otras funciones

 

abs (x)        valor absoluto

ceil (x)        techo

hecho(x)        factorial

piso (x)        piso

mcd(x y)        máximo común divisor (entero máximo de 64 bits)

mcm(x y)        mínimo común múltiplo (entero máximo de 64 bits)

ror(xyz)        rotar x Derecho y bits con un tamaño variable de z (en bits) (entero máximo de 64 bits)

rol(xyz)        rotar x izquierda y bits con un tamaño variable de z (en bits) (entero máximo de 64 bits)

 

Orden de precedencia

 

1.las variables
2.expresiones entre paréntesis coincidentes
3.funciones enumeradas en Funciones trigonométricas y trascendentales.
4.exponenciación
5.multiplicación, división y MOD
6.Adición y sustracción
7.>, <, Y, O, XOR, NO, SHL y SHR

 

Cuando se utilizan varias expresiones consecutivas de un único nivel de precedencia, la evaluación se realiza de izquierda a derecha.

 

Por ejemplo, 3+4*2 será interpretado como 3 + 8no como * 7 2. Para cambiar este orden de evaluación, utilice paréntesis para especificar el orden que desee.

 

Precisión de los cálculos internos.

 

@EVAL admite números de hasta 30,000 dígitos; ¡Es muy poco probable que necesites una precisión mayor que esta! Algunas funciones (gcd, lcm, ror, rol) utilizan enteros de 64 bits.

 

Precisión de visualización y formato de salida

 

La precisión máxima de visualización es de 15,000 dígitos a la izquierda del punto decimal y 15,000 dígitos a la derecha. Puede modificar la precisión decimal predeterminada con el OPCIÓN comando, las opciones de configuración @EVAL Precision y con el SETDOS Comando /F. Puede cambiar el separador decimal con la opción de configuración de caracteres decimales o el SETDOS Comando /G.

 

Puede modificar el formato de visualización de la instancia actual de @EVAL especificando desplegar formato.

 

Formato de visualización de notación científica

 

If desplegar formato is E, La salida estará en notación científica. Por ejemplo:

 

eco %@eval[1.4567e+4*7.6541e+2=E]

 

Puede combinar =E con una precisión de visualización (ver más abajo):

 

echo %@eval[1.4567e+4*7.6541e+2=E1.15]

 

Formato de visualización hexadecimal

 

If desplegar formato es la letra H, la salida será hexadecimal. Si desplegar formato is X, la salida será hexadecimal con un punto inicial 0x.

 

Formato de visualización binario

 

If desplegar formato es la letra B, la salida será binaria.

 

Precisión explícita

 

If desplegar formato is Estaba yendo, entonces:

 

i  debe ser un número que especifique la precisión decimal mínima (el número mínimo de decimales mostrados);

a debe ser un número que establezca la precisión decimal máxima.

el personaje separándose i y a puede ser la coma si es tu separador decimal

 

Puede especificar uno o ambos parámetros. i y a. If yo > un, o si solo i está especificado, i se utiliza como precisión mínima y máxima, p.ej ambas =2 y = 2.1 son equivalentes a = 2.2.

 

Si el último carácter del desplegar formato is +, @EVAL antepondrá los números positivos con un +.

 

Ejemplos:

 

expresión

Valor

@eval[3/6=2.4]

0.50

@eval[3/6=4.4]

0.5000

@eval[3/7]

0.4285714286

@eval[3/7=.4]

0.4286

@eval[3/7=2.2]

0.42

@eval[3/7=2]

0.42

@eval[3/7=2+]

+0.42

 

Ver también: @DIC y @C ª.