본문 바로가기
프로그래밍/언어_스크립트

[C/C++] signed 형과 unsigned 형의 비교

by 써드아이 2014. 2. 24.

char 형이나 short 형의 자료 일 경우 얘기다.


signed 자료형에 - 값을 넣으니까 무조건 자리를 0xff로 채운다.

char 형은 0xffffffxx를 만들고, short 형은 0xffffxxxx를 만들더라.

왜 그럴까...


이유를 따지는건 머리아파 넘어가지만 문제가 발생하는건 넘길수가 없다.

단순 사칙연산은 별 탈 없이 잘 수행하는데 unsigned 형과 signed 형의 

비교가 들어갈 때 오류를 내게 된다.


char c1 = 0xff;

unsigned char c2 = 0xff


if ( c1 == c2 )

     ...

else

     ...


위 문장은 else 쪽을 실행하게 된다.


젠장