2013-03-07 47 views

Trả lời

12

49 là giá trị ASCII của char 1. Đó là giá trị của byte đầu tiên.

Các dòng byte được tạo ra khi bạn nhập Nhập trên giao diện điều khiển của bạn hoặc thiết bị đầu cuối chứa ba byte {49,48,10} (trên máy Mac của tôi, có thể kết thúc với 10,12 hoặc 12 thay vì 10, tùy thuộc vào Hệ thống của bạn).

Vì vậy, đầu ra của đoạn đơn giản

int b = System.in.read(); 
while (b != -1) { 
    System.out.println(b); 
    b = System.in.read(); 
} 

sau khi nhập 10 và nhấn enter, là (trên máy tính của tôi)

49 
48 
10 
+0

tại sao nó không đọc toàn bộ '10'? – saplingPro

+0

Vì '10' là hai byte. Một byte biểu thị ký tự 1, theo sau là một byte đại diện cho ký tự '0'. –

+0

@saplingPro 'System.in.read()' chỉ đọc một byte. – Maroun

3

Khi bạn nhập 10, nó không được đọc như một số nguyên nhưng dưới dạng một chuỗi hoặc chính xác hơn ở đây, một mảng các byte.

49 là mã ASCII cho ký tự 1.

4

System.in.read() chỉ đọc một byte.

Unicode giá trị điểm cho .

Cố gắng in:

System.out.println((char)49);

Điều này sẽ giúp bạn hiểu nó hơn.

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