Bitowe OR w Ruby vs javascript

Próbując przekonwertować generator UID z Javascript na Ruby, chciałem zrozumieć następujące zachowanie.

ta linia kodu

89190868196442450 | 0

dałby javascript

1074708816

i rubinem

89190868196442450

W pełni rozumiem zachowanie ruby, ponieważ operator bitowy OR kopiuje trochę, jeśli istnieje w operandzie eather, ale wciąż jestem zdziwiony, jeśli chodzi o zachowanie javascript. Spojrzałem głębiej w reprezentację liczb całkowitych javascript i nie mogłem znaleźć jasnego wyjaśnienia. jaZnajdź to, ale nie do końca to zrozumiał.

89190868196442450 w formacie binarnym to 100111100110111101001111101000000000011101100000101010010, co sprawia, że ​​ma długość 57 bitów.

Czy ktokolwiek mógłby dać mi jasne wyjaśnienie lub powyższy wynik. A jaka operacja powinna być wykonana na kodzie ruby, aby zapewnić podobne zachowanie?

questionAnswers(1)

yourAnswerToTheQuestion