我正在制作一个使用>> 1
的程序,我想知道使用*0.5
是否完全相同。我是Java的新手,所以对我来说很容易。
答案 0 :(得分:3)
它基本上是不一样的,因为你不能用非整数执行位移。因此,执行7 >> 1
之类的操作会返回3,但7 * 0.5
会返回正确的float
值3.5
答案 1 :(得分:1)
完全没有,>>
是一个按位移位,与乘以0.5完全不同(就此而言除以2)。虽然对于某些数字,您可能会在两个操作中获得相同的结果,而对于其他操作则不会。例如,3 >> 1
等于1,而3 * 0.5
为1.5。
此外,对于按位移位,操作数和返回类型的类型都是int
,但如果执行(int) * 0.5
,则结果值将为double
类型。