-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);

    }

}