2013-01-15 122 views
0

b會返回什麼?如果打印,字節b =(字節)0x8A的值是多少?

byte b = (byte)0x8A; 
System.out.println("Value"+b); 

它會打印什麼?價值何時會返回否定?

+6

當你編譯和運行時你得到了什麼輸出? –

+0

你爲什麼不自己嘗試,並給我們答案,它不會佔用你的時間。 – Abubakkar

+3

我猜它是-128 + 10,因此有點像-118? – Ingo

回答

2

它會打印什麼?

可能不是你所期望的。在Java中,byte是一個(帶符號)數字而不是字符,因此當0x8A轉換爲字符串時,您將得到一個小負數的十進制表示形式。

所以我期望:

Value-118 

如果你想0x8A被解釋爲,你應該寫這樣一個角色:

char c = (char) 0x8A; 
System.out.println("Value" + c); 

但是,這並沒有真正工作,要麼因爲Unicode代碼點008A不是打印字符。 (而且值得注意的是,0x8A不是ASCII,因爲真正的ASCII是7位字符集。)

+1

好吧,所以這是英語中有歧義的地方。這是一個小負數還是一個大負數?與-10相比,-100是一個大的負數還是一個小的負數? :p – thang

+1

有一個不明確的地方是英語,但數學英語沒有歧義。小/大數是指數字的大小而不是其符號。 –

+0

不認識的人請詳細解釋 – sheetal