char a =-1;

unsigned int b = (unsigned int)a;


b값 보면 0xFFFFFFFF 던데 왜이런거냐?

char에서 unsigned char로 먼저 바꾼후에(-1 -> 255)

unsigned char에서 unsigned int(앞에 0비트로 채워짐 0xFF -> 0x000000FF)로 되는게 아니라



char에서 먼저 int로 바꾼담에 (0xFF -> 0xFFFFFFFF)

int에서 unsigned int로 바꿔서(0xFFFFFFFF -> 0xFFFFFFFF) 그런거 같은데


이렇게 하는 특별한 이유같은게 있음??