[Java의 정석]Chapter2.변수(16~17)
Chapter 2. 변수
16. 부호있는 정수의 오버플로우
- 부호없는 정수와 부호있는 정수는 표현범위 즉, 최대값과 최소값이 다르기 때문에 오버플로우가 발생하는 시점이 다름
📌 부호 없는 정수 : 2진수로 '0000'이 될 때 오버플로우 발생
📌 부호 있는 정수 : 부호비트가 0에서 1이 될 때 오버플로우 발생
부호없는 10진수 | 2진수 | 부호있는 10진수 |
---|---|---|
. . . | . . . | . . . |
7 | 0111 | 7←최대값 (오버플로우 발생) |
8 | 1000 | -8←최소값 (오버플로우 발생) |
9 | 1001 | -7 |
10 | 1010 | -6 |
11 | 1011 | -5 |
12 | 1100 | -4 |
13 | 1101 | -3 |
14 | 1110 | -2 |
(오버플로우 발생) 최대값→15 | 1111 | -1 |
(오버플로우 발생) 최소값→0 | 0000 | 0 |
. . . | . . . | . . . |
- 부호없는 정수(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"
Author And Source
이 문제에 관하여([Java의 정석]Chapter2.변수(16~17)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@wendy1126/Java의-정석Chapter2.변수1617저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)