Java语言中表达式-12>>3的结果为什么是-2不是-1?

2025-04-07 15:39:37
推荐回答(3个)
回答1:

因为>>3相当于除以8,按道理说是-1.5,-1.5还不到-1,就是差0.5才到-1,为了去整只能舍弃那多出来的0.5,你要理解,即使你是-1.0001就差0.0001就到1了,但还是不到-1,同样是舍弃那多出来的0.9999,这跟整数是一个道理的,1.9999,就差0.0001就到2,同样得舍弃那多出来的0.9999

回答2:

-12→11110100(补)→11110100(补)>>3→11111110(补)→最后这个就是-2的补码。

回答3:

就是这样的