Odpowiedz
Czyni to samo jak to:
a = a >>> b;
Poza tym a
oceniana jest tylko raz (co ma zaobserwować różnicę, jeśli jego ocena wiąże żadnych skutków ubocznych).
I >>>
jest unsigned (logical) right shift.
Dziękuję! To jest jakiś zwariowany kod kodowania/dekodowania, którego tutaj szukam. –
'a' jest tylko" ocenione raz "także dla' a = a >>> b'. To nie tak, że po raz drugi jest tam podziwiany. Oba wyrażenia zwracają wartość zwracaną wyrażenia, a nie "a" (która została ustawiona na wartość). –
@ Elijah: założeniem jest, że 'a' jest symbolem zastępczym dla dowolnego wyrażenia, a nie tylko identyfikatora. –
Jest to operator bitowy o nazwie zero-fill right shift. Spowoduje to przesunięcie binarnej reprezentacji a
po prawej stronie przez b
miejsc i zastąpienie pustych elementów zerami. Następnie wynik zostanie przypisany do a
.
I prawy przesuwa wartość w liczbie bitów określonej przez wartość w b, bez zachowania znaku.
To jak operator >> =, który przesuwa wartość, tyle tylko, że nie zmienia znaku liczby.
Przykład:
var a = -1;
// a now contains -1, or 11111111 11111111 11111111 11111111 binary
var b = 1;
a >>>= b;
// a now contains 2147483647, or 01111111 11111111 11111111 11111111 binary.
Dziękujemy za dostarczenie tego przykładu! –
Holy crap, to trochę skomplikowane rzeczy! o_0 – KyleFarris
Crockford points out że podczas JavaScript jest logicznie operatorów jak >>>
, wykorzystując je na swoich rodzimych podwójnej precyzji liczb zmiennoprzecinkowych zakłada przekształcenie iz powrotem do liczb całkowitych wewnętrznie. Nie będą tak wydajne, jak w innych językach z natywnymi typami danych liczbowych.
Naprawdę nie można użyć google do znalezienia tych informacji? –
Czy próbowałeś Googling ">>> ="? – Tinister
Częścią celu tej witryny jest ostateczne odniesienie; Nie uważam, że proste pytania są nieodpowiednie. Google zignoruje ">>>" w zapytaniu; musisz wiedzieć, aby wyszukać "operatorów" lub "operatorów bitowych". –