签名右1(>> 1)与* 0.5相同?

时间:2014-02-09 17:02:12

标签: java

我正在制作一个使用>> 1的程序,我想知道使用*0.5是否完全相同。我是Java的新手,所以对我来说很容易。

2 个答案:

答案 0 :(得分:3)

它基本上是不一样的,因为你不能用非整数执行位移。因此,执行7 >> 1之类的操作会返回3,但7 * 0.5会返回正确的float3.5

答案 1 :(得分:1)

完全没有,>>是一个按位移位,与乘以0.5完全不同(就此而言除以2)。虽然对于某些数字,您可能会在两个操作中获得相同的结果,而对于其他操作则不会。例如,3 >> 1等于1,而3 * 0.5为1.5。

此外,对于按位移位,操作数和返回类型的类型都是int,但如果执行(int) * 0.5,则结果值将为double类型。