: #include<stdio.h> : void main() : { : unsigned int a1; : int a2=-1; : a1=-1; : printf("unsigned:%u",a1); : printf("signed:%u",a2); : : } %u로 바꾸니 65535로 나오네요...두개 모두 근데..메모리에는 어떻게 저장되는거고 두개의 차이점이 뭐에요?
같은 비트 패턴을 %u 로 찍으면 unsigned 로 해석되어 값이 달라집니다. 65535 가 나온 것은 int 가 16비트인 환경이라 그렇고, 현재 시스템에서 sizeof 로 int 크기를 확인하면 차이를 이해할 수 있습니다.