Я был удивлен, увидев, что -1 делится на 2 с использованием результатов побитовых операций -1.
Я ожидал, что вернется 0.
Как и при делении 1 или -1 на 2, десятичная часть удаляется, и мы получаем ноль. Возможно, это связано с дополнением Two, но это всего лишь предположение, которое я не совсем понимаю.
может кто-нибудь объяснить это?
-1 >> 1 = -1
-1 / 2 = 0
public class JavaFiddle
{
public static void main(String[] args)
{
System.out.println(-1 >> 1);
System.out.println(-1 / 2);
}
}