Побитовое ИЛИ в рубине против JavaScript

Пытаясь преобразовать генератор UID из Javascript в Ruby, я хотел понять следующее поведение.

эта строка кода

89190868196442450 | 0

дал бы в JavaScript

1074708816

и в рубине

89190868196442450

Я полностью понимаю поведение ruby, поскольку битовый оператор OR копирует немного, если он существует в другом операнде, но яЯ все еще озадачен поведением JavaScript. Я посмотрел глубже в представлении целых чисел javascript и не смог найти четкого объяснения. янашел это, но не до конца понял.

89190868196442450 в двоичном виде это 100111100110111101001111101000000000011101100000101010010, что делает его длиной 57 бит.

Может ли кто-нибудь дать мне четкое объяснение или вышеупомянутый результат. И какую операцию я должен сделать с кодом ruby, чтобы обеспечить подобное поведение?

Ответы на вопрос(1)

Ваш ответ на вопрос