2014-02-09 95 views
0

我正在製作一個程序,我在其中使用>> 1,我在想如果使用*0.5是完全一樣的東西。我是Java新手,所以對我來說很簡單。是否與* 0.5相同?1(>> 1)

+1

一個給出了一個整數,而另一個給出了一個整數,所以不,它們顯然不是一回事。 – Zong

回答

3

它基本上不一樣,因爲你不能用非整數進行位移。因此,做類似7 >> 1將返回3,但7 * 0.5將返回正確的float價值3.5

+4

儘管如此,它與整數分割「/ 2」基本相同。 – keshlam

+0

@Kon然後做什麼移位7 3或9 4 – tomjdog

+0

@tomjdog它只對整數操作數起作用。所以它使用(基本上)整數除法。在java中,7/2 = 3,因爲除以兩個整數必須產生一個整數結果。 – Kon

1

一點也不,>>是一個位的轉變,這是0.5比乘法完全不同(除以2爲此事)。雖然對於某些數字,您可能會在兩種操作中得到相同的結果,而對於其他的則不然。例如,3 >> 1等於1,而3 * 0.5等於1.5。

此外,對於按位移位,操作數和返回類型的類型都是int,但如果這樣做(int) * 0.5,所產生的價值將是double類型。

+1

如果你用'0.5'乘以一個'int',你會得到一個'double',而不是'float'。 –

+0

對,thx糾正 – Warlord

相關問題