Considerate il seguente frammento di programma, dove n contiene un intero non negativo; che cosa viene stampato?
if((n % 2) != (n & 1)) printf("vero\n"); else printf("falso\n");Risposte:
- Viene stampato vero se n è pari, e falso se n è dispari.
- Viene stampato vero se n è dispari, e falso se n è pari.
- Viene stampato sempre vero.
- Viene stampato sempre falso.
Soluzione: d (viene stampato sempre falso)/em>.
Osserva
- n % 2 restituisce il resto della divisione per 2 (se n è pari sarà 0 altrimenti 1)
- n & 1 restituisce il bit meno significativo in base 2 (se n è pari sarà 0 altrimenti 1).