gpio 헤더 파일에 보면 다음과 같은 소스가 있습니다.

// GPIO 출력 마스크
#define MASK_GPIO_LED_1  ( 1 << GPIO_LED_1 )
#define MASK_GPIO_LED_2  ( 1 << GPIO_LED_2 )
#define MASK_GPIO_LED_3  ( 1 << GPIO_LED_3 )
#define MASK_GPIO_LED_4  ( 1 << GPIO_LED_4 )

그런데 여기서 1<< 을 왜 해주는지 이해가 가지않네요

gpio_led_1 은 2번째 gpio포트라서 실제 값은 2가 정의 되어 있는데 여기서 왼쪽으로 1만큼 쉬프트 하는 이유를 모르겠습니다.


그리고   
// 출력 정의
 GAFR0_L &= ~( GPIO_OUTPUT_MASK ); // Disable Alternative Function
 GRER0   &= ~( GPIO_OUTPUT_MASK ); // Clear Rising edge trigger.
 GFER0   &= ~( GPIO_OUTPUT_MASK ); // Set as Falling Edge Detect

라이징 에지를 클리어 하는 부분은 이해가가는데 폴링 엣지를 셋 하는 부분은 이해가 가지 않습니다.
GPIO_OUTPUT_MASK 가 0X3B라고 하셨는데 반전해서 &를 하면 라이징에지에서와 같이 폴링에지 부분도
클리어가 되는게 아닌가요?

DATASHEET랑 같이 보는데도 초보라 아직 잘모르겠군요...^^
조언 부탁드립니다.