Allora io la creazione della maschera LUNGA n e a partire dalla posizione p l'ho ideata così:
for(i=0;i<n;++i)
mask|=(1<<p+i);
così facendo ho la maschera creata e già shiftata al posto giusto
adesso l'ho messo in OR con il secondo numero così da "selezionare solo i bit giusti"
prendiamo caso che il primo numero è 111.0111.00
il secondo è 101.1011.00
devo modificare la parte centrale del primo numeero facendolo diventare :
111.1011.00
interessandomi solo della parte centrale perché ho fatto una copia di x che mi permette di salvare i bit prima e dopo quelli modificati quindi il mio problema è che non riesco ad andare avanti perché sia con and con or o con xor operando il primo e il secondo numero la parte centrale non è uguale al secondo numero ho pensato anche che potrei provare ad azzerare la parte centrale facendolo diventare 111.0000.00 e poi sommarci il secondo numero , il problema è che rischio di perdere la generalità di un problema per via di un caso isolato