C# 강좌 : 제 26강 - 오버플로 & 언더플로

C# Overflow & Underflow

C# 강좌 : 제 26강 - 오버플로 & 언더플로
[ C# ] - 윤대희

오버플로(Overflow)와 언더플로(Underflow)


데이터 형식의 범위 밖의 연산이 발생하였을 때 범위보다 큰 수나 작은 수가 입력되어 값이 달라지는 현상입니다.

산술적인 연산을 해야하는 프로그램에서 오버플로(오버플로우)언더플로(언더플로우)가 발생하면 결과값이 달라지는 오류가 발생합니다.


데이터 형식 범위 알아보기 : 9강 바로가기



오버플로(Overflow)


private void Form1_Load(object sender, EventArgs e)
{
    int flow = 2147483647;
    textBox1.Text = Convert.ToString(flow + 1);
}



1

데이터 형식의 범위를 넘어가는 값일 경우 오버플로가 발생하여 제일 작은 음수 값으로 넘어가게됩니다.



언더플로(Underflow)


private void Form1_Load(object sender, EventArgs e)
{
    int flow = -2147483648;
    textBox1.Text = Convert.ToString(flow - 1);
}



2

데이터 형식의 범위를 넘어가는 값일 경우 언더플로가 발생하여 제일 큰 양수 값으로 넘어가게 됩니다.



플로 해결


오버플로언더플로가 발생 시, 명시적으로 알기 어렵습니다.

변수를 명시적으로 범위가 더 큰 변수로 변경시켜주거나 산술 연산시 빌드 설정을 통하여 명시적으로 알 수 있습니다.



3 상단의 메뉴에서 프로젝트프로젝트 속성으로 들어갑니다.



4 왼쪽의 탭 메뉴 중 빌드를 선택하고 가장 아래의 고급버튼을 클릭합니다.



5 고급 빌드 설정에서 산술 연산 오버플로/언더플로 확인(K)에 체크한 후 확인 버튼을 클릭합니다.



6 오버플로언더플로 발생 시 오류 메세지를 통하여 플로를 확인할 수 있습니다.



Book Image

개정판이 출간됐습니다!

C#과 파이썬을 활용한 OpenCV 4 프로그래밍 (개정판)

컴퓨터 비전 기초 이론부터 머신러닝을 활용한 영상 처리 프로젝트까지

  • C#과 파이썬용 OpenCV의 데이터 형식과 행렬 및 배열 연산
  • 이미지/동영상/카메라를 활용한 입출력과 결과 저장
  • 전처리 과정과 정보를 탐색하기 위한 이미지 변형
  • 유의미한 정보를 검출하기 위한 이미지 변환
  • 이미지에서 정보를 검출 및 인식
  • 객체 검출을 포함한 모션 추적
  • K-means, KNN, SVM 등의 머신러닝 알고리즘 적용 방법
  • 카페(Caffe), 다크넷(Darknet), 텐서플로 모델을 활용한 딥러닝 모듈 적용 방법
  • Tesseract-OCR과 C# OpenCvSharp4를 활용한 프로젝트
  • 텐서플로와 Python OpenCV4를 활용한 프로젝트
  • 윤대희 저 | 위키북스

    [yes24 바로가기] [알라딘 바로가기] [교보문고 바로가기]

    후원하기


    ⤧  Previous post C# 강좌 : 제 25강 - 메세지 박스 ⤧  Next post C# 강좌 : 제 27강 - 난수
    C# Category