Come le calcoli le differenze? Io direi che potresti usare la funzione XOR per lavorare sui bit

.
Ad esempio:
Codice:
val| bits
11 | 01011 XOR
15 | 01111 =
-----------
4 | 00100
Se il risultato dello XOR è 0 significa che non è cambiato nulla.
Quindi se è 1 vai a leggere i bits del risultato per capire quali sono cambiati

.
Io penso che tu ce la possa fare così

.