Някой успя ли да намери какво правят тези оператори в Java?
Ето тези оператори : <<=, >>=, >>>= И каква е разликата между втория и третия?
Ето тези оператори : <<=, >>=, >>>= И каква е разликата между втория и третия?
Здравей,
можеш да видиш във форума на Телерик, където имаше подобен въпрос (линк).
Да кажем, че имаме числото A = 60 (0011 1100);
А = А >>> 2
А = 15 (0000 1111);
---
A = 60 (0011 1100);
А = А <<< 2
А = 240 (1111 0000);
---
Повече информация:
http://stackoverflow.com/questions/3312853/an-example-of-a-bit-shift-operation-in-java
Сам си си отговорил тук: "Вероятно а>>=b е равносилно на a=a>>b ?" :)
А>>=Б е същото като А=А>>Б
А<<=Б е същото като А=А<<Б
И на С# ги има, изглежда си ги пропуснал :)
нещо като +=, *= ..... но със шифтване
Това са битови оператори за присвояване. a <<= 2 ще е еквивалентно на а=а<<2. Останалите работят по същия принцип. Разликата между 2рия и 3тия е че при третия се добавят нулите отзад на числото. За повече инфо можеш да видиш следния линк: http://www.tutorialspoint.com/java/java_basic_operators.htm под секцията за "Assignment operators".
Това с преместването на битове е ясно. Но тези оператори имат = накрая и са към групата за присвояване. Затова ме озадачиха и си помислих, че са специални за Java. А и гугъл мълчи за тях. Явно са нещо от типа на +=, -=. Вероятно а>>=b е равносилно на a=a>>b ?
Да, израза а >>>= 2 е еквивалентен на a = a >>> 2.
Същото като a += 5 (a = a + 5).
В учебниците се среща като кратък запис или комбинирани оператори.