이 코드 작업을보고 놀랐습니다. 나는 char와 int가 Java에서 두 개의 별개의 데이터 유형이고 ascii equivelent를 제공하기 위해 char을 int로 변환해야한다고 생각했습니다. 왜이게 효과가 있니?Java에서 char 및 int
String s = "hello";
int x = s.charAt(1);
System.out.println(x);
이 코드 작업을보고 놀랐습니다. 나는 char와 int가 Java에서 두 개의 별개의 데이터 유형이고 ascii equivelent를 제공하기 위해 char을 int로 변환해야한다고 생각했습니다. 왜이게 효과가 있니?Java에서 char 및 int
String s = "hello";
int x = s.charAt(1);
System.out.println(x);
char
및 int
는 두 가지 종류가 있지만 int
가 char
이상의 정밀도를 가지고 있기 때문에이 작동합니다. 즉, char
의 모든 값은 int
으로 표시 될 수 있으므로 캐스트에서 데이터가 손실되지 않습니다.
char
은 int
으로 자동 변환 될 수 있습니다. ,
긴, 플로트, 또는 더블
다음 19 특정 변환이 확대 원시적 변환 호출됩니다 JLS 5.1.2보기
...
기호의 확대 변환 정수형 T에 대한 정수형 값은 정수형 값의 2의 보수 표현을 부호 확장하여 더 넓은 형식을 채 웁니다. char를 정수 유형 T로 확대 변환하면 더 넓은 형식을 채우기 위해 char 값의 표현이 0으로 확장됩니다.
은'char' int'는 32 비트 부호 값이 '16 비트 부호없는 값이고 (강조 첨가). int에 char을 할당 할 수 있습니다. –