2013-06-22 112 views
1

在對基本類型小於int進行按位運算時,它們被提升爲int,並且在操作之後將它們轉換回它們的本機類型。將原始類型轉換爲int

爲什麼我們不能簡單地對原生類型進行操作?

+1

已經在網站上提問,可以在某處限制操作碼(指令)的數量,如果您有興趣可以搜索它。 – SJuan76

+3

答案就在這裏給出:[字節位運算產生INT] [1] [1]:http://stackoverflow.com/questions/2003003/why-does-the-xor-operator-on -two-bytes-produce-an-int – Tala

+0

先用google搜索,但找不到答案。 thnx鏈接。 – SIGSTP

回答

1

通用CPU使用32位數字表示來表示這種算術運算。這意味着CPU的算術邏輯單元(ALU)中的寄存器最有可能是32位,這就是CPU的功能。顯然隱式轉換髮生了。

爲什麼Java不會將它轉換回「小」類型,我不知道。這是Java創作者的問題。

相關問題