Overflow
- 범위 바깥의 값을 대입할 수는 없지만 연산중에 범위를 벗어나 전혀 엉뚱한 값이 되는 경우
예)
* byte 타입은 최대255인데 255에 1증가하면 256이 되는게 아니라 0이 되어버린다
반대로 b가 0일때 b--는 b를 -1로 만드는게 아니라 255로 된다
오버플로우 점검하기
1) 속성에서 오버플로우 점검하기
속성/빌드/고급 대화상자
2) 개별 연산문에서 점검하기
checked{b++}; 라고 쓰면 {}블록안의 연산문에 대해 체크한다
uncheck{b++}; 이라고 하면 체크를 생략한다
* 큰타입의 정수를 작은타입에 대입하기위해 캐스팅을 하면, 컴파일은 가능하지만 값이 조금 잘리게 나온다
하지만 컴파일시에 오버플로우가 생기므로 이가 의도된거라면 오버플로우체크 금지를 시켜 감싸도록 한다
- 범위 바깥의 값을 대입할 수는 없지만 연산중에 범위를 벗어나 전혀 엉뚱한 값이 되는 경우
예)
* byte 타입은 최대255인데 255에 1증가하면 256이 되는게 아니라 0이 되어버린다
반대로 b가 0일때 b--는 b를 -1로 만드는게 아니라 255로 된다
오버플로우 점검하기
1) 속성에서 오버플로우 점검하기
속성/빌드/고급 대화상자
2) 개별 연산문에서 점검하기
checked{b++}; 라고 쓰면 {}블록안의 연산문에 대해 체크한다
uncheck{b++}; 이라고 하면 체크를 생략한다
* 큰타입의 정수를 작은타입에 대입하기위해 캐스팅을 하면, 컴파일은 가능하지만 값이 조금 잘리게 나온다
하지만 컴파일시에 오버플로우가 생기므로 이가 의도된거라면 오버플로우체크 금지를 시켜 감싸도록 한다
'Study > C#' 카테고리의 다른 글
C# 기본 문법 - 1. 제어문 (0) | 2011.12.07 |
---|---|
C# 타입 - 4. 타입 변환 (Boxing, UnBoxing) (0) | 2011.12.06 |
C# 타입 - 4. 타입 변환 (명시적 변환) (0) | 2011.12.06 |
C# 타입 - 4. 타입 변환 (암시적 변환) (2) | 2011.12.06 |
C# 타입 - 3. 값과 참조 (C++과의 비교) (0) | 2011.12.05 |