Buenas,
Te explico según lo entiendo. La primera parte del código (antes del OR), lo que hace es desplazar 3 bits a la derecha.
Entonces, la parte de la línea (Puede que esté mal la cantidad de paréntesis):
(((!(int_-int_)<<!(int_-int_))<<(!(int_-int_)<<!(int_-int_)))
Sería lo mismo que poner:
1<<1<<1<<1;
1
10 --> Primer desplazamiento.
100 --> Segundo desplazamiento.
1000 --> Tercer desplazamiento.
La segunda parte del código:
(!(int_-int_)<<!(int_-int_)));
Sería:
1<<1;
1
10 --> Primer desplazamiento.
Y ahora realiza la operación OR. Está es una operación lógica que devuelve verdadero (en este caso 1) cuando uno de los operandos o ambos, sean verdaderos (o 1). Entonces:
1000 | 10
Hace la siguiente comparación (bit a bit):
1 OR 1 = 1
0 OR 0 = 0
0 OR 1 = 1
0 OR 0 = 0
Dando como resultado 1010. 10 en decimal.
Un saludo.