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?