# Operatori e funzioni disponibili

Creare espressioni utilizzando dati, operatori, funzioni matematiche e conversioni di tipi di dati.

### Operatori

#### Operatore intero

Utilizzare questi operatori per eseguire operazioni aritmetiche semplici. Utilizzarli per calcolare valori numerici, come "TankLevel + 60".

Operatore | Espressione | Descrizione
[+] | X + Y | Aggiungere
[-] | X - Y | Sottrai
[*] | X * Y | Moltiplica
[/] | X / Y | Dividi
[%] | X % Y | Resto della divisione
[()] | (X + Y)*10 |

Utilizzare l'operatore Aggiungere (+) per eseguire la concatenazione delle stringhe. In altre parole, è possibile concatenare le stringhe con il simbolo Aggiungere, "Ciao " + " " + "Billy" crea la stringa "Ciao Billy".

#### Operatore bitwise

Operatore | Espressione | Descrizione
[>>] | X >> Y | Spostamento a destra. Sposta i bit in X, a destra, del numero Y di posizioni di bit. Mantiene il segno.
[<<] | X << Y | Spostamento a sinistra. Sposta i bit in X, a sinistra, del numero Y di posizioni di bit. Mantiene il segno.
[>>>] | X >>> Y | Riempimento zeri, spostamento a destra. Sposta i bit in X, a destra, del numero Y di posizioni di bit e riempie i bit spostati a sinistra con zeri, non mantiene quindi il segno.
[&] | X & Y | Restituisce il risultato dell'operazione AND a livello di bit. Se X = 0110; Y= 0100 il risultato è 1100
[|] | X | Y | Restituisce il risultato dell'operazione OR a livello di bit. Se X = 0110; Y= 1110 il risultato è 1100
[^] | X ^ Y | Restituisce il risultato dell'operazione XOR a livello di bit. Se X = 0110; Y= 1010 il risultato è 1100
[~] | ~X | Inverte i bit nel valore X. Se X = 0110, allora il risultato è 1001.
[!] | !X | Restituisce true quando X non è uguale.

Nota:

- OR/AND/XOR/NOT restituiscono sempre un valore intero a 32 bit senza segno.
- Se il valore di ingresso è negativo, le espressioni a scorrimento bit restituiscono un valore intero a 32 bit.
- Se il valore di ingresso è positivo, le espressioni a scorrimento bit restituiscono un valore intero a 32 bit senza segno.

#### Operatore uscita BOOL

Questi operatori confrontano due valori. L'espressione restituisce true quando il confronto definito è vero. L'espressione restituisce false quando il confronto definito è falso. Utilizzarli per confrontare valori numerici, come "TankLevel > 30".

Quando nel valore si verifica uno dei seguenti, il risultato è indefinito:

- Errore di comunicazione (la qualità della variabile è "cattiva")
- Accesso al numero di elementi dell'array che è fuori dai limiti

- Dividere per zero.

Operatore | Espressione | Descrizione
- [&&] | X && Y | AND logico. Nota: Le espressioni BOOL nel convertitore devono valutare un valore booleano. Se l'espressione valuta un altro tipo di dati, il valore è indefinito. Anche se il valore di uno degli operandi non fosse definito, la condizione logica risultante potrebbe essere valutata falsa se l'altro operando è falso. Vedere la tabella seguente.
  Operatore sinistro | Operatore destro | Risultato
  Non definito | Non definito | Non definito
  Non definito | true | Non definito
  Non definito | false | false
  true | Non definito | Non definito
  false | Non definito | false
- [||] | X || Y | OR logico. Nota: Le espressioni BOOL nel convertitore devono valutare un valore booleano. Se l'espressione valuta un altro tipo di dati, il valore è indefinito. Anche se il valore di uno degli operandi non fosse definito, la condizione logica risultante potrebbe essere valutata vera se l'altro operando è vero. Vedere la tabella seguente.
  Operatore sinistro | Operatore destro | Risultato
  Non definito | Non definito | Non definito
  Non definito | true | true
  Non definito | false | Non definito
  true | Non definito | true
  false | Non definito | Non definito
[==] | X == Y | Restituisce true quando X è uguale a Y.
[!=] | X != Y | Restituisce true quando X non è uguale a Y.
[<=] | X <= Y | Restituisce true quando X è minore di o uguale a Y. Nota: Non è possibile utilizzare questo operatore per le variabili BOOL. le variabili STRING e le variabili WSTRING.
[>=] | X >= Y | Restituisce true quando X è maggiore o uguale a Y. Nota: Non è possibile utilizzare questo operatore per le variabili BOOL. le variabili STRING e le variabili WSTRING.
[<] | X < Y | Restituisce true quando X è minore di Y. Nota: Non è possibile utilizzare questo operatore per le variabili BOOL. le variabili STRING e le variabili WSTRING.
[>] | X > Y | Restituisce true quando X è maggiore di Y. Nota: Non è possibile utilizzare questo operatore per le variabili BOOL. le variabili STRING e le variabili WSTRING.

### Math

Metodo | Descrizione
abs(a) | Restituisce il valore assoluto. parametro: intero, ritorno: intero -o- parametro: long, ritorno: long -o- parametro: virgola mobile, ritorno: virgola mobile -o- parametro: double, ritorno: double
acos(double a) | Restituisce l'arco coseno. parametro: double, restituzione: double
asin(double a) | Restituisce l'arcoseno. parametro: double, restituzione: double
atan(double a) | Restituisce l'arco tangente. parametro: double, restituzione: double
atan2(double a, double b) | Restituisce la tangente di a/b dell'arco. parametro a: double, parametro b: double, restituzione: double
ceil(double a) | Restituisce il più piccolo valore intero maggiore del parametro. parametro: double, restituzione: double
cos(double a) | Restituisce il coseno. parametro: double, restituzione: double
E | Valore base dei logaritmi naturali. Numero in virgola mobile a doppia precisione. 2,71828182845904523545f Nota: Usare la sintassi Math.E.
exp(double a) | Restituisce il numero esponenziale e (cioè 2,718...) elevato alla potenza di un valore double. parametro: double, restituzione: double
floor(double a) | Restituisce il più grande valore intero minore del parametro. parametro: double, restituzione: double
IEEEremainder(double a, double b) | Restituisce il resto se il parametro a viene diviso per il parametro b. parametro a: double, parametro b: double, restituzione: double
log(double a) | Restituisce il logaritmo naturale del parametro. parametro: double, restituzione: double
max(a,b) | Restituisce il maggiore tra i 2 parametri. parametro a: intero, parametro b: intero, ritorno: intero -o- parametro a: long, parameter b: long, ritorno: long -o- parametro a: virgola mobile, parametro b: virgola mobile, ritorno: virgola mobile -o- parametro a: double, parametro b: double, ritorno: double
min(a,b) | Restituisce il minore tra i 2 parametri. parametro a: intero, parametro b: intero, ritorno: intero -o- parametro a: long, parameter b: long, ritorno: long -o- parametro a: virgola mobile, parametro b: virgola mobile, ritorno: virgola mobile -o- parametro a: double, parametro b: double, ritorno: double
PI | Il rapporto della circonferenza di un cerchio con il diametro. 3,14159265358979323846f Nota: Usare la sintassi Math.PI.
pow(double a, double b) | Ritorna ab. parametro a: double, parametro b: double, restituzione: double
random( ) | Restituisce un numero casuale compreso tra 0,0 e 1,0. parametro: nessuno, restituzione: double Nota: L’uscita di questa funzione è un numero in virgola mobile compreso tra 0 e 1.
rint(double a) | Restituisce il numero intero più vicino al parametro. parametro: double, restituzione: double
round(a) | Restituisce il valore long più vicino a un parametro double e il numero intero più vicino a un parametro float. parametro: double, ritorno: long o parametro: float, ritorno: integer
sin(double a) | Restituisce il seno del parametro. parametro: double, restituzione: double
sqrt(double a) | Restituisce la radice quadrata del parametro. parametro: double, restituzione: double
tan(double a) | Restituisce la tangente del parametro. parametro: double, restituzione: double

### Conversione del tipo

Usare la conversione del tipo per convertire il tipo di dati. Il seguente è un esempio di un'espressione valida, in cui la variabile LWORD viene convertita nella variabile SINT:

Tipo | Descrizione
(sint) | Restituisce il valore arrotondato con un intero di 8 bit con segno.
(usint) | Restituisce il valore arrotondato con un intero di 8 bit senza segno.
(byte) | Restituisce il valore arrotondato con un intero di 8 bit senza segno.
(int) | Restituisce il valore arrotondato con un intero di 16 bit con segno.
(uint) | Restituisce il valore arrotondato con un intero di 16 bit senza segno.
(word) | Restituisce il valore arrotondato con un intero di 16 bit senza segno.
(dint) | Restituisce il valore arrotondato con un intero di 32 bit con segno.