2017-11-19 1 views
1

아래의 코드는 'A'의 ASCII 값을 반환하지만, (int)는 이해하지 못합니다.int가 대괄호 안에있는 경우 어떻게됩니까?

System.out.print ((int) 'A');

출력 : 65

+4

아주 기본적인 Java 튜토리얼이 필요합니다. Java에서 "캐스팅"을 연구하십시오. 구체적으로는 정수 유형에 관한 것입니다. –

답변

3

(int)cast있다. char 글자 Aint으로 전송하므로 2 바이트 표현이 65 바이트로 4 바이트 표현으로 확장됩니다.

2

그냥 char을 int로 변환합니다.

char character = 'a';  
int ascii = (int) character; 
+0

[ "문자 리터럴은 UTF-16 코드 단위 만 나타낼 수 있습니다."] (https://docs.oracle.com/javase/specs/jls/se8/html/jls-3.html#jls-3.10.4). UTF-16은 [Unicode] (http://www.unicode.org/charts/nameslist/index.html) 문자 세트의 문자 인코딩 중 하나입니다. ASCII와 같은 다른 문자 세트와의 유사성은 부적합합니다. –

2

sysout에서 'A'를 사용할 경우. 그대로 인쇄하는 것. 그러나 어떤 내부()와 함께 사용하면 위와 같이 캐스팅됩니다. 당신은 이것을 시도 할 수 있습니다.

System.out.println((Character)'A'); --> Prints A 
    System.out.println((Object)'A'); --> Prints A 
    System.out.println((float)'A'); --> 65.0 
    System.out.println((byte)'A'); --> 65 

증명의 문제.

System.out.println((Integer)'A'); --> Cannot cast from char to Integer 
    System.out.println((Float)'A'); --> Cannot cast from char to Float 
관련 문제