> 백엔드 개발 > C++ > C#에서 정수 오버플로를 어떻게 처리할 수 있나요?

C#에서 정수 오버플로를 어떻게 처리할 수 있나요?

Linda Hamilton
풀어 주다: 2024-12-26 06:58:09
원래의
732명이 탐색했습니다.

How Can I Handle Integer Overflow in C#?

C# 정수에 대한 오버플로 처리

Project Euler 문제 10의 맥락에서 정수(int)를 사용할 때 예기치 않은 동작이 발생했습니다. 200만 미만의 소수의 합을 계산하는 변수입니다. 결과가 int의 최대값을 초과했음에도 불구하고 C#은 오버플로 예외를 발생시키지 않았습니다.

다른 프로그래밍 언어와 달리 C# 정수 연산은 기본적으로 오버플로 시 예외를 발생시키지 않습니다. 즉, 오버플로가 발생하면 결과는 단순히 데이터 유형 범위 내의 값으로 "랩핑"됩니다. int의 경우 결과는 찾고 있는 실제 합계와는 거리가 먼 음수 값 범위 내에 있었을 것입니다.

오버플로를 명시적으로 처리하려면 다음 두 가지 옵션이 있습니다.

  1. 프로젝트 설정: Visual Studio에서는 "산술 오버플로 감지" 옵션을 "모두 활성화"로 설정하여 프로젝트 설정에서 오버플로 검사를 활성화할 수 있습니다. 산술 연산."
  2. 체크된 연산자: 또는 selected 키워드를 사용하여 특정 계산을 체크할 수 있습니다. 예를 들면 다음과 같습니다.
int result = checked(largeInt + otherLargeInt);
로그인 후 복사

이 경우 오버플로는 System.OverflowException을 발생시킵니다.

checked의 반대는 선택 해제되어 오버플로 검사를 억제합니다. 프로젝트 설정에서 오버플로 검사가 활성화된 경우에만 사용해야 합니다.

위 내용은 C#에서 정수 오버플로를 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿