b = (unsigned char)(a & 0x00ff);과 b = (unsigned char)a; 차이

firesnow의 이미지

아래코드에서 3번라인처럼 사용할 때와 4번라인처럼 사용할 때, 각각 어떤 차이가 있나요?

0. unsigned int a = 0x1234; //16bit
1. unsigned char b; //8bit
3. b = (unsigned char)(a & 0x00ff);
4. b = (unsigned char)a;