powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / 32 битное представление чисел
15 сообщений из 15, страница 1 из 1
32 битное представление чисел
    #39266085
vdekameron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Изучаю сейчас побитовые операторы и операции с ними. Автор в самом начале урока рассказывает о том:
авторНапример, вот число 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
32 битное представление чисел
    #39266610
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vdekameronИзучаю сейчас побитовые операторы и операции с ними....
это закономерность....
Закономерность

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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


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