[C] int 그리고 음수의 표현에 대한 이해
만약 아래와 같이 프로그램을 작성하면 결과가 원하는대로 나오지 않는다. #includeint main(void){ unsigned int a; a = 4294967295; printf("%d\n", a); a = -1; printf("%u\n", a); return 0;}첫 번째 a에는 -1이, 두 번째 a에는 4294967295이 찍히는데, 그 이유가 뭘까 ? C에서 int형은 4바이트만큼 메모리를 차지하게 되는데, usigned int는 0~2^32 - 1 만큼의 숫자를 표현할 수 있고, int는 -2^31 ~ 2^31 -1만큼의 숫자를 표현할 수 있다. 부호가 있는 int형의 경우, 첫 번째 비트는 부호비트로 1이면 음수, 0이면 양수를 나타낸다. 4294967..
2024.07.27