Decode, оказывается
(-Number).toString(2) работает с Number как с положительным числом а потом прибавляет
'-':
alert( (-11).toString(2) );
alert( (11).toString(2) );
Как и
parseInt('Number', 2) видит Number только как положительное двоичное число а потом прибавляет '-':
alert( parseInt('-1011', 2) );
alert( parseInt('1011', 2) );
Для представления отрицательного двоичного числа нашел такое:
alert( (-11 >>> 0).toString(2) );
alert( parseInt('11111111111111111111111111110101', 2) >> 0 );
Теперь всё как надо:
alert( (~10 >>> 0).toString(2) );
Сообщение от Malleys
|
Таким образом однозначно могут быть представлены целые числа от 0 до 2147483647 и от -2147483648 до -1, с оговоркой, что они 32-х битовые.
|