@EVAL[Ausdruck[=Anzeigeformat]]: Wertet einen mathematischen Ausdruck aus und gibt seinen Wert in dem von angegebenen Format zurück Anzeigeformat oder im Standardformat. Parameterinterpretation  Unten wird beschrieben, was Ausdruck kann enthalten. Anzeigegenauigkeit und Ausgabeformat Nachfolgend wird das Ergebnisformat erläutert.

 

Der Ausdruck kann Umgebungsvariablen und andere Variablenfunktionen enthalten und einen der unten aufgeführten Operatoren verwenden. @EVAL Unterstützt auch Klammern (zur Steuerung der Auswertungsreihenfolge), Kommas, Hexadezimalzahlen und Dezimaltrennzeichen. Klammern können verschachtelt werden. @EVAL entfernt führende und nachgestellte Nullen aus dem Ergebnis, es sei denn, Sie verwenden die Ausgabeformatierungsoperatoren.

 

@EVAL unterstützt sehr große Zahlen. Die maximale Größe beträgt 2,147,483,647 Ziffern in Windows x64. (Windows x86 wird durch den Speicher auf viel weniger begrenzt). Wenn Sie mehr als die standardmäßigen Dezimalwerte verwenden möchten, müssen Sie Ihre @Eval Precision-Konfigurationsoptionen ändern oder das Format „=x.y“ verwenden @EVAL. Die Nur-Ganzzahl-Operatoren (AND, OR und XOR) sind auf 64-Bit-Ganzzahlen beschränkt.

 

Ein Schritt        Parameterinterpretation

Ein Schritt        Rechenzeichen

Ein Schritt        Trigonometrische und transzendente Funktionen

Ein Schritt        Weitere Funktionen

Ein Schritt        Rangfolge

Ein Schritt        Präzision interner Berechnungen

Ein Schritt        Anzeigegenauigkeit und Ausgabeformat

Ein Schritt        Beispiele

 

Parameterinterpretation

 

Ausdruck kann Umgebungs- und interne Variablen enthalten, Array-Variablenund variable Funktionen. Nachdem alle Variablen und Funktionen erweitert wurden, darf es nur noch aus numerischen Zeichenfolgen und Funktionsnamen bestehen Trigonometrische und transzendente Funktionen or Weitere Funktionen, verbunden über Rechenzeichen und optional mit Klammern gruppiert.

 

@EVAL ermöglicht Ihnen die Vereinfachung Ausdruck durch Ablegen der % Prozentzeichen vor den Namen von Umgebungsvariablen. Dies verhindert auch das TCC-RT-Parser verhindert, dass Variablen (möglicherweise fälschlicherweise) erweitert werden, bevor sie an @EVAL übergeben werden. Sie müssen einschließen % für interne Variablen und Variablenfunktionen. @EVAL ermöglicht Ihnen auch die Verwendung von Zeichen, die normalerweise eine besondere Bedeutung haben TCC-RT z.B., & ^ | ohne ihre besondere Bedeutung auszuschließen oder sie zu zitieren.

 

Hinweis: Um sicherzustellen, dass Ausdruck richtig interpretiert wird, Räume sollten auf beiden Seiten jedes Operators platziert werden und Klammern sollten großzügig verwendet werden. Zum Beispiel:

 

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

%@eval[12 und 65]

 

@EVAL akzeptiert Zahlen in der Exponentensyntax der wissenschaftlichen Notation; d.h. 1575e-2 = 15.75. Mit der Syntax können Sie die Ausgabe in wissenschaftlicher Notation festlegen @eval[...=E]. Zum Beispiel:

 

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

 

Sie können =E mit einer Anzeigegenauigkeit kombinieren (siehe unten):

 

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

 

Zahlenbasis

 

Wenn eine Zeichenfolge mit den Zeichen beginnt 0x Es wird als Ganzzahl in hexadezimaler Schreibweise interpretiert. Wenn eine Zeichenfolge mit den Zeichen beginnt 0b es wird als Ganzzahl in binärer Notation interpretiert. Jede andere numerische Zeichenfolge wird als Dezimalzahl betrachtet.

 

Beispielsweise:

 

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

32

 

Sie können eine hexadezimale Ausgabe angeben mit der speziellen Syntax @eval[...=H]. Zum Beispiel:

 

  echo %@eval[3*6=H]

 

wird ausgeben 12 (verhexen). Keine Führung 0x ist in der Ausgabe enthalten. Informationen zum Konvertieren zwischen Dezimal- und Hexadezimalformaten finden Sie im @KONVERTIEREN Funktion.

 

Sie können eine binäre Ausgabe angeben mit der speziellen Syntax @eval[...=B]. Zum Beispiel:

 

echo %@eval[3*6=B]

 

Die Hex- und Binärausgabe ist auf 64-Bit-Ganzzahlen (mit Vorzeichen) beschränkt.

 

Rechenzeichen

 

Jeder Operator akzeptiert sowohl ganzzahlige als auch nicht ganzzahlige Parameter, außer wie unten angegeben.

 

Operatoren, die gebrochene Parameter akzeptieren

 

+(mit einem Parameter) Vorzeichen des numerischen Parameters (z. B. +3)
+(mit zwei Parametern) Addition
-(mit einem Parameter) Negation eines symbolischen Parameters (z. B. -n) oder Vorzeichen eines numerischen Parameters (z. B. -1, +3)
-(mit zwei Parametern) Subtraktion
*Multiplikation
/Teilung
**Potenzierung
!boolean nicht

 

Operatoren, die ganzzahlige Parameter erfordern

 

\ganzzahlige Division (gibt den ganzzahligen Teil des Quotienten zurück)
MODModulo (gibt den Rest zurück, wenn der erste Parameter durch den zweiten geteilt wird)
%%wie MOD
SHLarithmetische Linksverschiebung des ersten Parameters, gekürzt in Richtung Null auf eine Ganzzahl, um die durch den zweiten Parameter angegebene Anzahl von Bits
<<wie SHL
SHRArithmetische Rechtsverschiebung des ersten Parameters, gekürzt in Richtung Null auf eine Ganzzahl, um die durch den zweiten Parameter angegebene Anzahl von Bits
>>wie SHR
>größer als
<weniger als

 

Operatoren, die Parameter auf Ganzzahlen kürzen

 

UNDbitweise und (gibt 1 für jede Bitposition zurück, an der die entsprechenden Bits in beiden Parametern 1 sind)
&wie UND
ORbitweise oder (gibt 1 für jede Bitposition zurück, an der das entsprechende Bit in mindestens einem Parameter 1 ist)
|wie OR
XORbitweises Exklusiv-Oder (gibt 1 für jede Bitposition zurück, an der die entsprechenden Bits der beiden Parameter unterschiedlich sind)
^wie XOR
~unäres NICHT

 

Trigonometrische und transzendente Funktionen

 

Ausdruck kann die folgenden trigonometrischen und transzendenten Funktionen umfassen. Das Argument wird als Bogenmaß interpretiert.

 

log (x)natürlicher Logarithmus
log2(x)binärer Logarithmus
log10(x)Protokoll 10
Erfahrung (x)exponentiell
sin (x)ihre
asin (x)Arcussinus
Geburt(x)hyperbolischer Sinus
cos (x)Kosinus        
akos (x)Arkuskosinus        
Kosten (x)hyperbolischer Kosinus        
tan (x)Tangente        
atan (x)Arkustangens        
tan (x)hyperbolischer Tangens

 

Die spezielle Zeichenfolge PI ist eine Abkürzung für den Wert 3.14159265358979323846.

 

Weitere Funktionen

 

abs (x)        Absolutwert

ceiling (x)        Decke

Tatsache(x)        Fakultät

Boden (x)        Boden

gcd(xy)        größter gemeinsamer Teiler (max. 64-Bit-Ganzzahl)

lcm(xy)        kleinstes gemeinsames Vielfaches (maximal 64-Bit-Ganzzahl)

ror(xyz)        drehen x Recht y Bits mit einer variablen Größe von z (in Bits) (max. 64-Bit-Ganzzahl)

rol(xyz)        drehen x links y Bits mit einer variablen Größe von z (in Bits) (max. 64-Bit-Ganzzahl)

 

Rangfolge

 

1.Variablen
2.Ausdrücke in passenden Klammern
3.Funktionen aufgeführt in Trigonometrische und transzendente Funktionen
4.Potenzierung
5.Multiplikation, Division und MOD
6.Addition und Subtraktion
7.>, <, AND, OR, XOR, NOT, SHL und SHR

 

Wenn mehrere aufeinanderfolgende Ausdrücke einer einzelnen Prioritätsebene verwendet werden, erfolgt die Auswertung von links nach rechts.

 

Zum Beispiel, 3+4*2 wird interpretiert als 3 + 8, nicht so wie 7 * 2. Um diese Auswertungsreihenfolge zu ändern, verwenden Sie Klammern, um die gewünschte Reihenfolge anzugeben.

 

Präzision interner Berechnungen

 

@EVAL unterstützt Zahlen mit bis zu 30,000 Ziffern; Es ist höchst unwahrscheinlich, dass Sie eine höhere Präzision benötigen! Einige Funktionen (gcd, lcm, ror, rol) verwenden 64-Bit-Ganzzahlen.

 

Anzeigegenauigkeit und Ausgabeformat

 

Die maximale Anzeigegenauigkeit beträgt 15,000 Stellen links vom Dezimalpunkt und 15,000 Stellen rechts. Sie können die standardmäßige Dezimalgenauigkeit mit ändern zur Auswahl Befehl, die @EVAL Precision-Konfigurationsoptionen und mit dem SETDOS /F-Befehl. Sie können das Dezimaltrennzeichen mit der Konfigurationsoption Dezimalzeichen oder ändern SETDOS /G-Befehl.

 

Sie können das Anzeigeformat für die aktuelle Instanz von ändern @EVAL durch Angabe Anzeigeformat.

 

Anzeigeformat für wissenschaftliche Notation

 

If Anzeigeformat is E, Die Ausgabe erfolgt in wissenschaftlicher Notation. Zum Beispiel:

 

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

 

Sie können =E mit einer Anzeigegenauigkeit kombinieren (siehe unten):

 

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

 

Hexadezimales Anzeigeformat

 

If Anzeigeformat ist der Brief H, die Ausgabe erfolgt hexadezimal. Wenn Anzeigeformat is X, Die Ausgabe erfolgt hexadezimal mit führendem Vorzeichen 0x.

 

Binäres Anzeigeformat

 

If Anzeigeformat ist der Brief B, die Ausgabe erfolgt binär.

 

Explizite Präzision

 

If Anzeigeformat is ia, Dann gilt:

 

i  muss eine Zahl sein, die die minimale Dezimalgenauigkeit angibt (die Mindestanzahl der angezeigten Dezimalstellen);

a muss eine Zahl sein, die die maximale Dezimalgenauigkeit festlegt.

der Charakter trennt sich i und a kann das Komma sein, wenn es Ihr Dezimaltrennzeichen ist

 

Sie können einen oder beide Parameter angeben i und a. If ich >a, oder wenn nur i angegeben, i wird sowohl als minimale als auch als maximale Präzision verwendet, z.B beide =2 und = 2.1 sind äquivalent zu = 2.2.

 

Wenn das letzte Zeichen der Anzeigeformat is +, @EVAL stellt positiven Zahlen ein voran +.

 

Beispiele:

 

Ausdruck

Wert

@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

 

Siehe auch: @DEC und @INK.