Как работают побитовые операторы?
0177 - это число в восьмеричной системе счисления = 0111 1111 в двоичной
Допустим, n = 1111 1010 1010 в двоичной с.с.

1 & 0 = 0
0 & 0 = 0
1 & 1 = 1

тогда получаем:
0000 0111 1111
1111 1010 1010
---------------
0000 0010 1010
Литерал 0177 в языке С++ - это восьмеричный целочисленный литерал, который имеет тип int и положительное значение 127 - семь младших битов равны 1, а остальные (старшие) равны 0.

Вы не указали в своем вопросе какой тип имеет n, что делает ваш вопрос несколько бессмысленным (или полностью бессмысленным), но если предположить, что n - это переменная некоего целочисленного типа, то в данном выражении операнды оператора & будут неявно приведены к одному общему целочисленному типу (к одной ширине). Этот процесс называется usual arithmetic conversions (UAC). Если в процессе UAC придется расширить операнд 0177, то он будет дополнен до требуемой ширины дополнительными нулевыми битами в старшей части.

Так образом, даже после такого преобразования операнд 0177 по-прежнему будет представлять собой битовую "маску" из семи единичных битов в младшей части и нулевых битов в старшей части. Оператор & в такой ситуации "сохранит" семь младших битов исходного значения n и обнулит остальные биты.