[Java의 정석]Chapter2.변수(16~17)

Chapter 2. 변수

16. 부호있는 정수의 오버플로우

  • 부호없는 정수와 부호있는 정수는 표현범위 즉, 최대값과 최소값이 다르기 때문에 오버플로우가 발생하는 시점이 다름
    📌 부호 없는 정수 : 2진수로 '0000'이 될 때 오버플로우 발생
    📌 부호 있는 정수 : 부호비트가 0에서 1이 될 때 오버플로우 발생
부호없는 10진수2진수부호있는 10진수
. . .. . .. . .
701117←최대값 (오버플로우 발생)
81000-8←최소값 (오버플로우 발생)
91001-7
101010-6
111011-5
121100-4
131101-3
141110-2
(오버플로우 발생) 최대값→151111-1
(오버플로우 발생) 최소값→000000
. . .. . .. . .
  • 부호없는 정수(4bit)의 경우 표현범위가 '0~15', 부호있는 정수(4bit)의 경우 표현범위가 '-8~7'이므로 이 값이 무한히 반복

ex

15(최대값) + 1 = 0(최소값)
0(최소값) - 1 = 15(최대값)

7(최대값) + 1 = -8(최소값)
-8(최소값) -1 = 7(최대값)

17. 타입 간의 변환방법

  • 숫자를 문자로 변환 - 숫자에 '0'을 더함
    (char)(3+'0') → '3'

  • 문자를 숫자로 변환 - 문자에서 '0'을 뺌
    '3' - '0' → 3

  • 숫자를 문자열로 변환 - 숫자에 빈 문자열("")을 더함
    3 + "" → "3"

  • 문자열을 숫자로 변환 - integer.parseInt() 또는 Double.parseDouble()을 사용
    Integer.parseInt("3") → 3
    Double.parseDouble("3.14") → 3.14

  • 문자열을 문자로 변환 - charAt(0)을 사용
    "3".charAt(0) → '3'

  • 문자를 문자열로 변환 - 빈 문자열("")을 더함
    '3' + "" → "3"

좋은 웹페이지 즐겨찾기