PDA

View Full Version : [C] Shift di bit


Zagor HW
15-05-2007, 21:17
Salve a tutti, vorrei sapere se esiste un modo, mediante l'utilizzo degli shift, di salvare tutti i bit che compongono un numero in un apposito array, senza dover operare tutte le divisioni per convertire il numero da decimale a binario.

Grazie

maulattu
15-05-2007, 21:36
Salve a tutti, vorrei sapere se esiste un modo, mediante l'utilizzo degli shift, di salvare tutti i bit che compongono un numero in un apposito array, senza dover operare tutte le divisioni per convertire il numero da decimale a binario.

Grazie

shifty di un bit a destra ( >> 1) ottenendo cosė un nuovo numero "n".
a questo punto vedi se n č divisibile per 2:
do
{
if (n%2)
{
aggiungi '1' all'array in testa
}
else
{
aggiungi '0' all'array in testa
}
if (n == 0) // da verificare...
break;
n >>= 1;
} while (1);

recoil
15-05-2007, 22:56
for (i = 0; i < 8; i++)
{
array[i] = (n & (1 << i)) >> i;
}


giusto se vuoi una soluzione pių compatta

Zagor HW
16-05-2007, 13:26
Ok, grazie mille a tutti