자바(Java)

[자바] 데이터 자료형(data type)을 공부하면서 알게 된 것

worldpeace21 2020. 2. 15. 13:38

데이터 오버플로우, 언더플로우를 공부하다가 재밌는 사실을 알게 되었다.

 

byte 타입의 최솟값인 -128에 -128을 더하면 0이 되는 것을 확인 하고 싶었는데

 

이렇게 연산을 하면 결과가 0으로 출력되는데

 

더해서 연산하면 Type mismatch: cannot convert from int to byte 이러한 에러가 발생하는 것이다!

 

처음에는 뭔가 싶었는데 곰곰히 생각해보니

 

첫번째로 수행한 연산은 바이트가 저장할 수 있는 최솟값에 -128을 더해서 언더플로우가 발생한 것이고,

 

두번째로 수행한 연산은 바이트 변수가 저장할 수 있는 최솟값이 -128인데 변수에 -256를 저장하려 시도해서 발생한 에러였다! 

 

늘 느끼는 거지만... 컴퓨터는 거짓말을 안해... 내가 이상한 명령을 내린 것 뿐..!