Informatică, întrebare adresată de flashppp, 9 ani în urmă

Explicati-mi,va rog,secventa de cod de mai jos.
***
unsigned n=17;
n=n | (1<<3)
printf("%u",n);
****
unsigned n=17;
if(n&~(1<<3))
printf("a");
else
printf("b");

Răspunsuri la întrebare

Răspuns de NuPotSaStiuTot
0
n = 17: binar 10001
(1<<3) binar 1000 (1 miscat la stanga 3 locuri)
n | (1<<3) 10001 | 1000 = 11001 decimal 25

~(1<<3) 1000 invertit 11111111111111111111111111110111
n&~(1<<3) nu este 0: este ca true.
Alte întrebări interesante