Salve a tutto il forum!
vorrei capire se, dato un intero senza segno con un determinato valore, io posso, attraverso gli operaori bitwise, assegnare ad un'altra variabile senza segno l'inverso di quel numero...
per esempio
io ho la variabile num a cui assegno il valore 19 che in binario (4 byte) è pari a
codice:
00000000 00000000 00000000 00010011
io vorrei poter assegnare alla variabile num2 l'inverso di quel numero binario e cioè
codice:
11001000 00000000 00000000 00000000
pari al valore decimale di 3355443200
ho svolto un esercizio per la visualizzazione dei valori della variabile espresso in bit...
ma riesco solamente a visualizzare il valore inverso senza assegnarlo REALMENTE ad un'altra variabile...
per completezza vi riporto il codice...
codice:
#include <stdio.h>
void visualizzaBit (unsigned number);
void reverseBit (unsigned number);
int main(){
unsigned num;
printf("Inserisci un numero: ");
scanf("%u", &num);
printf("\n\nHai digitato il numero %u la cui rappresentazione binaria corrisponde a:\n\n", num);
visualizzaBit (num);
printf("\n\nLa rappresentazione binaria inversa del numero %u corrisponde a:\n\n", num);
reverseBit(num);
return 0;
}
void visualizzaBit (unsigned number){
unsigned mask = 1;
int cont;
mask <<= 31;
for (cont = 1; cont <= 32; cont++){
putchar (mask&number ? '1' : '0');
if (cont % 8 == 0)
printf("\t");
number <<= 1;
}
printf("\n\n");
return;
}
void reverseBit (unsigned number){
int i;
unsigned mask = 1;
for (i = 1; i < 32; i++){
putchar (mask & number ? '1': '0');
number >>= 1;
if ( i % 8 == 0)
printf("\t");
}
return;
}