-128 */ /* 필기. ( +1 하게되어 msb가 1이되고 음수로 전환 ) */ num1++; System.out.println(num1); /* 필기. 오버플로우로 -127 -> -126 */ byte num2 = - 127; System.out.println("num2의 값"); System.out.println(--num2); // num2 = (byte)(num2-1); System.out.println(--num2); } } "> -128 */ /* 필기. ( +1 하게되어 msb가 1이되고 음수로 전환 ) */ num1++; System.out.println(num1); /* 필기. 오버플로우로 -127 -> -126 */ byte num2 = - 127; System.out.println("num2의 값"); System.out.println(--num2); // num2 = (byte)(num2-1); System.out.println(--num2); } } "> -128 */ /* 필기. ( +1 하게되어 msb가 1이되고 음수로 전환 ) */ num1++; System.out.println(num1); /* 필기. 오버플로우로 -127 -> -126 */ byte num2 = - 127; System.out.println("num2의 값"); System.out.println(--num2); // num2 = (byte)(num2-1); System.out.println(--num2); } } ">
package com.haenin.section04.overflow;
public class Application1 {
public static void main(String[] args) {
/* 목표, 오버플로우에 대해 이해할 수 있다. */
/* 설명.
* 자료형 별 값의 최대 범위를 벗어나는 경우
* 발생한 carry를 버림처리하고 부호 비트를 반전시켜 순환한다. */
byte num1 = 126;
System.out.println("num1의 값");
// num1 = num1 + 1;
/* 필기. int형이 아닌 정수자료형에 연산하고 해당자료형에 다시 대입하면
* int형으로 인식되서 자료형의 범위를 벗어나게 됨 */
num1++; /* 필기. num1 = num1+ 1;는 오버플로우되는데 num++; 은 가능 */
System.out.println(num1);
num1++;
System.out.println(num1); /* 필기. 오버플로우127 -> -128 */
/* 필기. ( +1 하게되어 msb가 1이되고 음수로 전환 ) */
num1++;
System.out.println(num1); /* 필기. 오버플로우로 -127 -> -126 */
byte num2 = - 127;
System.out.println("num2의 값");
System.out.println(--num2); // num2 = (byte)(num2-1);
System.out.println(--num2);
}
}