Консультация № 159721
05.02.2009, 23:13
0.00 руб.
0 1 0
Здравствуйте! Разжуйте пожалуйста почему при беззнаковом смещении отрицательного числа скажем -5 мы получаем 2147483645? Ведь это 32 разрядное число 2147483645.

Приложение:
public class MyBit {

public static void main (String [] args) {

int a1 = -5; //101
int e = a1>>>1; // 101->10

System.out.println ("a1>>>1 = " +e);
}

}

Обсуждение

давно
Академик
20764
1861
06.02.2009, 00:01
общий
А что, по-вашему, должно получиться?
-5 это в двоичной 1111.1111.1111.1011 (для 16 бит - чтобы длинные числа не писать)
после беззнакового смещения получается 0111.1111.1111.1101 или 32765
Форма ответа