Показать сообщение отдельно
  #5 (permalink)  
Старый 23.11.2015, 21:23
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 1,586

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-х битовые.

Последний раз редактировалось Rise, 24.11.2015 в 02:35.
Ответить с цитированием