Wat doet de | = operator in Java?

Tijdens het lezen van de Android-gids voor meldingen , struikelde ik Over dit:

vibratie toevoegen

U kunt de gebruiker waarschuwen met het standaard trillingspatroon of met een
trillingspatroon gedefinieerd door uw aanvraag.

Om het standaardpatroon te gebruiken, voegt u “standaard_vibrate” toe aan het veld Infaults:

notification.defaults |= Notification.DEFAULT_VIBRATE;

Wat dit doet is duidelijk: het voegt de DEFAULT_VIBRATEvlag toe aan de standaardvlaggen van het meldingsobject.
Maar wat doet de |=operator in Java?
Het ziet eruit als een “of”, maar hoe werkt het?

Kunt u een voorbeeld geven met nummers?

bedankt


Antwoord 1, Autoriteit 100%

|=is een operator van bitgewijze of toewijzing. Het neemt de huidige waarde van de LHS, bitwise-ors de RHS en wijst de waarde terug aan de LHS (op een vergelijkbare manier tot +=doet met toevoeging).

Bijvoorbeeld:

foo = 32;   // 32 =      0b00100000
bar = 9;    //  9 =      0b00001001
baz = 10;   // 10 =      0b00001010
foo |= bar; // 32 | 9  = 0b00101001 = 41
            // now foo = 41
foo |= baz; // 41 | 10 = 0b00101011 = 43
            // now foo = 43

Antwoord 2, Autoriteit 56%

a |= xis a = a | x, en |is “bitwise inclusive of”

Telkens wanneer dergelijke vragen zich voordoen, controleer dan de officiële tutorial op operators .

Elke operator heeft een toewijzingsformulier:

+=-=*=/=%=&=^=|=<<=>>=>>>=

Waar a OP= xwordt vertaald naar a = a OP x

En over bitsgewijze bewerkingen:

  0101 (decimal 5)
OR 0011 (decimal 3)
 = 0111 (decimal 7)

De bitsgewijze OR kan worden gebruikt in situaties waarin een set bits als vlaggen wordt gebruikt; de bits in een enkel binair getal kunnen elk een afzonderlijke Booleaanse variabele vertegenwoordigen. Als u de bitsgewijze OF-bewerking op het cijfer toepast, samen met een bitpatroon dat 1 op sommige posities bevat, resulteert dit in een nieuw cijfer met die bits ingesteld.


Antwoord 3, autoriteit 9%

Het is een korte handnotatie voor het uitvoeren van een bitsgewijze OR en een opdracht in één stap.

x |= yis gelijk aan x = x | y

Dit kan met veel operators, bijvoorbeeld:

x += y
x -= y
x /= y
x *= y
etc.

Een voorbeeld van de bitsgewijze OF met getallen.. als een van beide bits is ingesteld in de operanden, wordt de bit in het resultaat gezet. Dus, als:

x = 0001 and
y = 1100 then
--------
r = 1101

Antwoord 4, autoriteit 6%

In dit geval, notification.defaultsis een bit array . Met behulp van |=, voegt u Notification.DEFAULT_VIBRATEtoe aan de set standaardopties. Inside Notificationis het waarschijnlijk dat de aanwezigheid van deze specifieke waarde zal worden gecontroleerd als SO:

notification.defaults & Notification.DEFAULT_VIBRATE != 0 // Present

Antwoord 5, Autoriteit 3%

Dit is de bit Wise of Operator. Indien notifications.default 0B00000001 is in binaire vorm en melding.Default_vibrate is 0B11000000, dan is het resultaat 0B11000001.


Antwoord 6

bitwise of operator

Other episodes