' Rapid-Q by William Yu (c)1999-2000 . ' ================================================================================ ' Upload_il_tuo_script_su_Rapidq.it ' Come_si_usano_gli_operatori_ ( ) (Parentesi) L'ordine di precedenza si riferisce all'ordine con il quale una lunga espressione matematica viene valutata e calcolata. * ha una precedenza più alta rispetto a +, quindi l'espressione matematica 1 + 2 * 4 viene calcolata così: prima 2 * 4 e poi il risultato viene aggiunto a 1, 1 + . Se vogliamo far calcolare diversamente tale espressione matematica dobbiamo suddividerla in parti mediante le parentesi tonde ( e ) forzando le operazione da effettuare prima. Quindi nell'espressione matematica (1 + 2) * 4 viene calcolto prima 1 + 2 e poi il valore è moltiplicato * 4 . ^ (Esponenziale) L'operatore esponenziale ( ^ caret) prende un numero e lo eleva alla potenza dell'esponente. La sintassi è al seguente: risultato = numero ^ esponente L'espressione 2 ^ 4 ritorna 16. * / \ SHL SHR (Moltiplicazione, Divisione, e Shifting) L'operatore della moltiplicazione ( * asterisco) moltiplica due numeri tra di loro . La sintassi è la seguente: risultato = numero1 * numero2 L'espressione 2 * 4 ritorna 8. L'operatore di divisione ( / slash in avanti) divide 2 numeri e ritorna il risultato come un numero in virgola mobile. La sintassi è la seguente: risultato = numero1 /numero2 L'espressione 15 / 4 ritorna 3.75 L'operatore divisione intera ( \ slash indietro) divide 2 numeri e ritorna il risultato come numero intero. La sintassi è la seguente: risultato = numero1 \ numero2 L'espressione 15 \ 4 ritorna 3 L'operatore shift a sinistra ( SHL ) e l'operatore shift a destra (SHR) effettuano lo shift (slittamento verso sinistra/destra) di un livello di bit in un numero intero. L'operatore SHL shifta tutti i bits in un numero a sinistra, e l'operatore SHR shifta tutti i bits in un numero a destra. La sintassi è la seguente: risultato = numero SHL quanti_shifts risultato = numero SHR quanti_shifts L'espressione 3 SHL 3 ritorna 24. L'espressione 32 SHR 3 ritorna 4. Per aiutare a capire come l'operatore shift funziona tu devi capire come un numero viene rappresentato in bits ( numeri binari 1 e 0 ). Un byte di memoria usa 8 bits di informazione binaria. Ciascuno degli 8 bits rappresenta un valore incrementale da 1 a 128. Un byte può poi contenenre un numero da zero ( tutti i bits impostati come 0/ spenti) fino ad un massimo di 255 ( tutti i bits impostati come 1/accesi). Il seguente schema mostra i valori dei bits in un byte: 0 0 0 0 0 0 0 0 - - - - - - - - | | | 16 8 4 2 1 | | 32 | 64 128 Notare che il flusso dei bits va dal più basso sulla destra al più alto sulla sinistra. Man mano che ciascun bit è posto uguale a 0 o 1 il suo valore viene aggiunto o sottratto al valore dell'intero byte. I seguenti sono esempi di numeri e della loro rappresentazione binaria come : 0 = 00000000 ( tutti i bits sono spenti) 3 = 00000011 ( 2 e 1 accesi ) 10 = 00001010 ( 8 e 2 accesi ) 100 = 01100100 ( 64, 32, e 4 accesi ) 255 = 11111111 ( tutti i bits sono accesi) Quando viene effettuata una operazione shift di un numero, lo schema dei bits che rappresenta quel numero viene shiftato verso sinistra o destra del numero di volte specificato dal secondo numero della sintassi. Quindi 3 SHL 3 esegue questi 3 passi: 00000011 ( 3 - valore originale ) 00000110 ( 6 - bits shiftati a sinistra 1 volta) 00001100 ( 12 - bits shiftati a sinistra 2 volte ) 00011000 ( 24 - bits shiftati a sinistra 3 volte ) La seguente espressione determina l'operazione inversa, l'espressione 24 SHR 3 ritorna il valore 3. MOD (Modulo) L'operatore modulo ( MOD ) divide un numero per un altro numero e ritorna il resto. La sintassi è la seguente: risultato= numero1 MOD numero2 MOD arrotonda i numeri in virgola mobile al numero intero corrispondente prima di eseguire la divisione, quindi l'espressione: 19 MOD 6.7equivale a19 MOD 7entrambi ritornano il valore 5. Si ottiene 5 perchè : 19 \ 7 = 2 7 * 2 = 14 19 - 14 = 5 INV (Modulo Inverso) L'operatore INV calcola l'inverso di MOD. Due numeri sono un l'inverso modulare dell'altro se il loro prodotto equivale ad 1. La sintassi è la seguente: risultato= numero1 INV numero2 Ecco un esempio: 3 INV 26 ritorna 9 perchè: (3 * 9) mod 26 = 1 o 3 * 9 = 27 27 MOD 26 = 1 L'operatore INV non è frequente nel linguaggio BASIC, ma può essere usato in associazione a MOD per creare semplici routines di crittografia (codifica / decodifica). + - (Addizione, Sottrazione) Le vecchie e buone addizione e sottrazione. Forse esse sono in BASIC le sole operazioni completamente familiari a chiunque guardi un listato sorgente. L'operatore di addizione è ancora il segno più ( + ), e quello della sottrazione è ancora il segno meno ( - ). Non c'è nessuna differenza tra come vengono scritti in BASIC e come sono usati a scuola. 1 + 1 ritorna 2 e 6 - 3 ritorna 3. The syntax is as follows: risultato = numero1 + numero2 risultato= numero1 - numero2 = < > <> <= >= (Operatori Relazionali) Il gruppo di operatori relazionali forniscono una idea di come due differenti affermazioni, variabili o persino espressioni si correlino l'una con l'altra. I differenti operatori relazionali testano quanto qui sotto spiegato: = uguaglianzatesta se 2 numeri sono uguali. 2 = 2 ritorna TRUE. < meno ditesta se il primo numero è più piccolo del secondo. 2 < 3ritorna TRUE . > maggiore ditesta se il primo numero è più grande del secondo. 10 > 2ritorna TRUE . <> non uguale (diverso da)testa se i 2 numeri sono differenti tra loro. 5 <> 153ritorna TRUE . <= minore o uguale atesta se il primo numero è sia più piccolo o uguale al secondo numero. 7 <= 8ritorna TRUE . >= maggiore o uguale atesta se il primo numero è più grande o uguale al secondo numero. 15 >= 2ritorna TRUE . NOT, AND, OR, XOR (Operatori Logici) L'operatore logico NOT ritorna un valore TRUE solo se il suo operando ha un valore FALSE. La sintassi è la seguente: IF NOT operando1 THEN Puoi usare l'operatore NOT per invertire aritmeticamente i bits dell'operando. Se un bit nell'operando è 1 allora il suo risultato dopo NOT è 0. Se invece è 0, risulta uguale a 1. La sintassi è la seguente: risultato% = NOT operando1 A causa del modo come BASIC immagazzina e gestisce le variabili di tipo integer , effettuare una operazione NOT equivale ad aggiungere 1 e cambiare di segno il numero (rendendolo negativo). Dimostrazione dell'operatore NOT: NOT 11 = 0000000000001011 ------------------------- -12 = 1111111111110100 L'operatore logicoAND ritorna un valore di TRUE solo se entrambi gli operandi hanno un valore TRUE. La sintassi è la seguente: IF operando1 AND operando2 THEN Tu puoi anche usare AND come operatore aritmetico bitwise effettuando un confronto bit-per-bit degli operandi, impostando il bit risultante uguale a 1 se i corrispondenti bits degli operandi sono entrambi uguali a 1 o impostando il bit risultante uguale a 0 se entrambi o uno dei due bits sono uguali a 0.La sintassi è la seguente: risultato% = operando1 AND operando2 Dimostrazione di un operatore AND: 11 = 0000000000001011 AND 5 = 0000000000000101 ------------------------- 1 = 0000000000000001 L'operatore logico OR ritorna un valore TRUE se almeno uno degli operandi ha il valore TRUE.La sintassi è la seguente: IF operando1 OR operando2 THEN Tu puoi anche usare l'operatore OR come un operatore aritmetico bitwise che effettua il confronto bit-per-bit degli operandi. Se entrambi o almeno uno dei bits degli operandi è uguale a 1 il bit risultante è 1, se entrambi sono 0 il bit risultante è 0.La sintassi è la seguente: risultato% = operando1 OR operando2 Dimostrazione dell'operatore OR: 11 = 0000000000001011 AND 5 = 0000000000000101 ------------------------- 15 = 0000000000001111 L'operatore logico XOR ritorna il valore di TRUE se entrambi, ma non uno solo, dei suoi operandi hanno il valore di TRUE.La sintassi è la seguente: IF operando1 XOR operando2 THEN Nelle operazioni aritmetiche bitwise , XOR imposta il bit risultante uguale a 1 solo se i corrispondenti bits negli operandi hanno valori differenti. Se presentano lo stesso valore, il bit risultante è uguale a 0.La sintassi è la seguente: risultato% = operando1 XOR operando2 Dimostrazione dell'operatore XOR: 11 = 0000000000001011 XOR 5 = 0000000000000101 ------------------------- 14 = 0000000000001110 ' =============================================================================== ' 2003 Holyguard.net - 2007_Abruzzoweb