Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / 32 битное представление чисел / 15 сообщений из 15, страница 1 из 1
01.07.2016, 10:13
    #39266085
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
Добрый день. Изучаю сейчас побитовые операторы и операции с ними. Автор в самом начале урока рассказывает о том:
авторНапример, вот число 314:

00000000000000000000000100111010

Чтобы получить -314, первый шаг – обратить биты числа: заменить 0 на 1, а 1 на 0:

11111111111111111111111011000101

Второй шаг – к полученному двоичному числу прибавить единицу, обычным двоичным сложением: 11111111111111111111111011000101 + 1 = 11111111111111111111111011000110.

Итак, мы получили:

-314 = 11111111111111111111111011000110

Но после
Код: javascript
1.
parseInt("11111111111111111111111011000110", 2)

получилось никак не -314, а число 4294966982.
И после
Код: javascript
1.
2.
var n = 4294966982;
n.toString(2);

получаю 11111111111111111111111011000110

Это ошибка у автора или это закономерность? Помогите разобраться пожалуйста с этим.
...
Рейтинг: 0 / 0
01.07.2016, 17:15
    #39266610
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
vdekameronИзучаю сейчас побитовые операторы и операции с ними....
это закономерность....
Закономерность

Перед тем как изучать побитовые операции, разберись сначала с тем, что числа бывают
разной длины: 8, 16,32,64,128 и 100500 битов.

IMHO
...
Рейтинг: 0 / 0
01.07.2016, 21:44
    #39266712
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
vdekameronполучилось никак не -314, а число 4294966982.Целое со знаком, целое без знака... Суть в трактовке набора ноликов и единичек получателем этого числа. В ряде случаев единица самого старшего разряда обозначает отрицательное число (видимо, как раз об этом случае говорит автор урока). Такое представление довольно привычно для процессора (например, при арифметических операциях). В ряде других случаев число всегда считается положительным. В общем, по ситуации.
...
Рейтинг: 0 / 0
01.07.2016, 23:33
    #39266738
бухалтер фантоцци
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
vdekameron,

В JavaScript тип Number вроде имеет диапазон от -(2 53 - 1) до (2 53 - 1).
Нет строгого разделения на целый и вещественный, так что такие "опыты" надо делать на языке, в котором есть 32-разрядный знаковый целый тип, например LongInt
...
Рейтинг: 0 / 0
02.07.2016, 15:51
    #39266836
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
бухалтер фантоццитак что такие "опыты" надо делать на языке, в котором есть 32-разрядный знаковый целый тип

Зачем тогда автор в книге по javascript показывает то, что не соответствует javascript не понимаю
...
Рейтинг: 0 / 0
02.07.2016, 16:43
    #39266846
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
vdekameronЗачем тогда автор в книге по javascript показывает то, что не соответствует javascript не понимаю

кто автор и какая книга?
...
Рейтинг: 0 / 0
02.07.2016, 18:35
    #39266866
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
Изопропилкто автор и какая книга?

Книга-сайт. И довольно таки известный ресурс.

https://learn.javascript.ru/bitwise-operators
...
Рейтинг: 0 / 0
02.07.2016, 19:25
    #39266873
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
vdekameron,

ParseInt трактует аргумент как беззнаковый.

побитовые операции приводят аргумент(ы) к знаковому 32- разрядному,
знаковый бит результата - расширяется влево

сделай |0 и увидишь -314

в "книге" написано действительно не очень понятно,
спецификация ECMAScript поставит всё на место.
...
Рейтинг: 0 / 0
02.07.2016, 20:21
    #39266879
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
Я так понимаю что тут дело именно в parseInt хотя вот это я не понял -


ИзопропилParseInt трактует аргумент как беззнаковый.

А насчет того, что "сделай |0 и увидишь -314" Тут я понял. с таким же успехом поможет ^0 или ~~ которые не меняют целое число, только лишь отбрасывают дробную часть.


Изопропилв "книге" написано действительно не очень понятно

это мягко сказано. Меня это вообще запутало.
...
Рейтинг: 0 / 0
02.07.2016, 20:33
    #39266880
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
vdekameronА насчет того, что "сделай |0 и увидишь -314" Тут я понял. с таким же успехом поможет ^0 или ~~ которые не меняют целое число, только лишь отбрасывают дробную часть.
не только. ещё до 32 бит операнды усекают(старшие биты отбрасывают)
...
Рейтинг: 0 / 0
02.07.2016, 21:37
    #39266886
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
Изопропилспецификация ECMAScript поставит всё на место

Не подскажите как правильно поиск задать. Не получается найти в спецификации это
...
Рейтинг: 0 / 0
02.07.2016, 21:54
    #39266889
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
...
Рейтинг: 0 / 0
03.07.2016, 11:52
    #39266937
vdekameron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
Изопропил,

Спасибо!
...
Рейтинг: 0 / 0
03.07.2016, 12:41
    #39266948
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
Изопропилvdekameron,

http://www.ecma-international.org/ecma-262/5.1/Ecma-262.pdf

11.7.1 например
А чем выгодно отличается от этого: https://learn.javascript.ru/bitwise-operators#битовый-сдвиг-влево ?
...
Рейтинг: 0 / 0
03.07.2016, 16:12
    #39266996
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
32 битное представление чисел
skyANA,

описанием приведения операндов к необходимым типам
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / 32 битное представление чисел / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]