오버플로우(overflow)시 전혀 다른 값이 나오는 이유
※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다. 예1) int 자료형에서 데이터 overflow시 전혀 다른 값이 나오는 이유 int 자료형은 2byte의 크기의 메모리를 사용한다. 2byte를 bit로 환상하면 16bit가 되는데 그 중 1bit는 양, 음수를 판별하는 부호로 사용된다. 그래서 실제론 15bit를 사용하는데, 이는 unsigned int와 signed int의 표현 범위가 달라지는 이유이기도 하다.(unsigned는 부호비트 1bit를 연산비트에 더해 16bit를 사용하기 때문에) 만약 int형 변수(signed int)에 15bit로 표현하기 부족한 값이 들어간다면 그 오버된 값이 2진수로 변환되어, 그 값이 15bit에 잘려서 ..
개인공부/C and C++
2014. 1. 16. 20:23