Bạn đã gán một ký tự ký tự, được phân tách bằng dấu nháy đơn, ví dụ 'a'
(khác với ký tự chuỗi, được phân cách bằng dấu ngoặc kép, ví dụ "a"
) cho một int
biến. Java thực hiện phép truyền tự động mở rộng từ 16-bit chưa được ký char
thành 32-bit có dấu int
.
Tuy nhiên, khi một ký tự chữ là một dấu gạch chéo ngược theo sau bởi 1-3 chữ số, thì đó là một biểu diễn bát phân ( cơ số / cơ số 8) của ký tự. Như vậy:
\15
= 1 × 8 + 5 = 13 (dấu xuống dòng; giống như '\r'
)
\25
= 2 × 8 + 5 = 21 (ký tự NAK - xác nhận phủ định)
\100
= 1 × 64 + 0 × 8 + 0 = 64 (ký hiệu @; giống như '@'
)
Để biết thêm thông tin về ký tự ký tự và chuỗi thoát, hãy xem phần JLS:
Trích dẫn BNF từ 3.10.6:
OctalEscape:
\ OctalDigit
\ OctalDigit OctalDigit
\ ZeroToThree OctalDigit OctalDigit
OctalDigit: one of
0 1 2 3 4 5 6 7
ZeroToThree: one of
0 1 2 3