Un’altra lezione sul linguaggio di programmazione C.

Oggi vedremo come effettuare divisioni e moltiplicazioni per 2^n. Grazie ad operatori di basso livello, BITWISE. E vedremo utilizzando l’and Bitwise (&) come controllare se un numero x è pari o dispari.

#include <stdio.h>
 
int main(){
int y;
int z = 40; 
int x = 40; //40 che è pari
 
y = x >> 1; //shift a destra - [equivale a dividere x per 2] e assegna il risultato a y 
z = y << 1; //shif a sinistra - [equivale a moltiplicare y per 2] - dove 1 è l'esponente del 2. (2^1)
// y <<= 1; // scritto in modo compatto
// y <<= 2; //equivale a fare una moltiplicazione per 2^2 quindi per 4.
// y >>= 3; //equivale a fare una divisione per 2^3 = 8.
 
    printf("%d shift a destra (diviso 2) = %d\n moltiplicato per 2 = %d \n", x, y, z);
 
    //altre notazioni per verifcare se un numero è pari o dispari:
 
    if (z % 2 == 1)//se il resto della divisione per 2 è 1, allora sarà dispari
        printf("%d è un numero dispari \n", z);
 
    if (z % 2 == 0)// se il resto della divisione per 2 è 0, allora sarà pari
    printf("%d è un numero pari \n", z);
 
    //NOTAZIONE BITWISE
 
    if (x & 1){//l'espressione restituisce 1 se l'ultimo bit a destra è 1 quindi x è dispari.
          printf("%d è dispari \n", x);
          }else{//Se restituisce 0 allora x è pari.
                printf("%d è pari \n", x);
                }
 
    y = x & 1; //y conterrà 1 se x è dispari altrimenti conterrà 0 se x è pari.
 
   system("PAUSE");
    return 0;
    }