| Home / Indice sezione | www.icosaedro.it | ![]() |
|
| |||||||||||||||||||||||||
| Frontespizio Introduzione Caratteristiche Un semplice esempio Moduli Sezione IMPORT Sezione CONST Sezione TYPE Tipo FORWARD Sezione VAR Sezione FUNCTION Sezione BEGIN Stringhe letterali Sottostringhe Commenti Costanti predefinite Variabili predefinite Funzioni predefinite Istruzione di assegnamento Istruzione per la chiamata di funzione Ordine di valutazione degli argomenti attuali Istruzione IF Istruzione SWITCH Istruzione FOR Istruzione WHILE Istruzione REPEAT Istruzione LOOP Istruzione TRY Istruzione RAISE ERROR Istruzione RETURN Espressioni logiche Espressioni intere Espressioni reali Espressioni stringa Espressioni tra tipi strutturati Regole di scope M2 per programmatori C M2 per programmatori Java Rappresentazione dei dati in memoria Keywords Messaggi di errore a runtime Sintassi | Espressioni intereLe espressioni di tipo INTEGER possono coinvolgere le costanti letterali di tipo INTEGER, le costanti di tipo INTEGER, le variabili di tipo INTEGER e le funzioni che ritornano INTEGER. Le costanti letterali di tipo INTEGER si possono esprimere in base decimale nel modo consueto e in base esadecimale facendo precedere le cifre esadecimali dai caratteri "0x" (zero, x minuscola). Esempi: 1234 0xffa0 -0xAFF I numeri interi utilizzano la lunghezza della parola del processore, tipicamente 32 bit, e sono rappresentati in complemento a due, perciò il loro range va da -(2^31) a (2^31-1). Il linguaggio non esegue controlli sui valori generati durante l'esecuzione del programma, sicchè il controllo dell'overflow è demandato alla logica del programma. Per i numeri INTEGER sono previsti tre insiemi di operatori: Sono disponibili gli operatori aritmetici e gli operatori logici a bit:
Gli operatori di scorrimento logico agiscono sull'intera parola in memoria, senza dare particolare significato al bit di segno. Così ad esempio, la divisione per 2 equivale a uno scorrimento logico a destra di un bit solo se il numero è positivo: 4 >> 1 = 2 = 4 DIV 2 -4 >> 1 = 14 Gli operatori moltiplicativi hanno priorità sugli operatori additivi. L'operatore di complemento a uno ha la priorità massima. L'operatore di inversione di segno ha la stessa priorità degli operatori di somma e sottrazione binari. Gli operatori con uguale priorità associano da sinistra verso destra. Così l'espressione -a * b & ~ c + d DIV e ^ f >> 2 viene interpretata come: ( -((a * b) & (~c)) + (d DIV e)) ^ (f >> 2)
perché vengono applicati prima l'operatore di complemento a uno,
poi gli operatori moltiplicativi ( Le parentesi tonde si possono usare per cambiare l'ordine di applicazione degli operatori e ogni qualvolta lo si ritenga opportuno per migliorare la chiarezza delle espressioni. | |||||||||||||||||||||||||
| ||||||||||||||||||||||||||
| Umberto Salsi | Contatto | Mappa | Home / Indice sezione |