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

   

오버플로 (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 오버플로언더플로 발생 시 오류 메세지를 통하여 플로를 확인할 수 있습니다.



도움이 되셨다면 광고 클릭 부탁드립니다.

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