2013-02-19 25 views
16

Tôi đã nhìn thấy này char định nghĩa là char ch = '\117'Tại sao chữ ' 117' hợp lệ trong Java?

Những loại đại diện'\117' trong?

Tôi biết escaped-sequence'\n', ví dụ, hoặc unicode`\udddd', nơi d là một hex chữ số duy nhất, nhưng tôi chưa bao giờ thấy những điều như '\117' trong toàn bộ cuộc sống của tôi! Đáng ngạc nhiên, nó biên dịch! (Và đầu ra là O)

+11

Xem [Trình tự thoát cho ký tự và chuỗi ký tự] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html # jls-3.10.6). – EJP

+1

Đây là ký hiệu bát phân. Xem [Tại sao tịnh tiến Java chỉ thoát lên tới 255?] (Http://stackoverflow.com/q/9543026/111424), đặc biệt là [câu trả lời của rob cất cánh] (http://stackoverflow.com/a/9543611/111424). Nó có thể tương thích với các ngôn ngữ và lập trình cũ hơn. –

Trả lời

8

Đó là trong bát phân, một lưu giữ từ C/C++.

3

Đó là do biểu diễn hình tròn của hình thu nhỏ O.

Nếu bạn cố gắng in char ch='\117';, bạn sẽ thấy nó in O.

2

Đó là một giá trị Octal cho nhân vật "O", khi tôi đã System.out.println (..) Tôi đã nhận ra điều này:

char ch = '\117'; 
System.out.println("Char is: " + ch); 

Output:

Char is : O 
+1

Hơn thế nữa, nó là một giá trị ASCII trong bát phân. – EJP

+0

Xin lỗi, cập nhật tương tự :) @EJP –

Các vấn đề liên quan