노곤

nogon.egloos.com

포토로그 마이가든




unsigned char와 signed char Firmware

void fun(void)
{
     char a;
    
     a = 0x80;
     printf("%x\n", a>>1);
}

위와 같이 했을 때 a의 결과 값이 어떻게 나올까요?

상식적으로는 당연히 0b1100 0000 결과가 나와야합니다.

하지만 펌웨어에서는 종종 컴파일러가 char를 unsigend char로 기본으로 잡고 있는 경우가 많습니다.

따라서 결과는 컴파일러의 환경 설정에 따라서 0b1100 000도 될수 있고 0b0100 0000도 될 수 있습니다.



트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://nogon.egloos.com/tb/2210288 [도움말]

덧글

댓글 입력 영역