카테고리 없음

unsigned int 빼기 주의사항

jjon-jonny 2024. 1. 6. 23:35

unsigned 란 것은 un+signed 인데, 이는 sign,즉 부호가 없다는 의미이다.

 

unsigned int는 int와 마찬가지로 보통 4byte를 사용한다.

 

int 의 범위는 -2147483648~2147483647이다.

 

unsigned int의 범위는 0~ 4294967295이다.

 

==> 무엇을 주의 해야 하는가?

가장 중요한 것은 빼기이다.

두 값 모두 양수이기때문에 (큰값- 작은 값)이면 문제가 안생기겠지만, (작은 값-큰값)은 음수가 되어 바로 오버플로우가 발생한다.

 

만약

if(a-b>=0) 이런식으로 제약을 두고 있다면 이는 잘못쓰이고 있는 것이다. 애당초 음수를 담지 못하기에 저렇게 쓰는 것은 잘못쓴것이다. 항상 참이 나오기 때문.

 

더하기 때에도 오버플로가 나는지 주의해야한다.