2013-07-30 3 views
1

в следующем коде в Java:Что этот оператолог | = означает?

Notification noti = nBuilder.build(); 
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
noti.flags |= Notification.FLAG_AUTO_CANCEL; 

что является этим оператором (|=) для?

+0

Это так же, как + =, - = и т.д. –

+0

'|' = \t поразрядного ИЛИ и назначение оператор \t 'noti.flags | = Notification.FLAG_AUTO_CANCEL' такого же, как' noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL' – user370305

ответ

3
  • | бит бит или оператор
  • | = is noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL;

    noti.flags | = Уведомление.FLAG_AUTO_CANCEL;

    вычисляет побитовое ИЛИ of noti.flags и Notification.FLAG_AUTO_CANCEL и присваивает результат noti.flagsd.

7
noti.flags |= Notification.FLAG_AUTO_CANCEL; 

означает

noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL; 

где | это Bit wise OR operator

1

побитовое или, такая же, как:

noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL; 

он выполняет «или» операции с битами операндов. Скажите, что у вас есть

// noti.flags =      0001011 (11 decimal) 
// Notification.FLAG_AUTO_CANCEL = 1000001 (65 decimal) 

// The result would be:    1001011 (75 decimal) 
1

Это побитовое ИЛИ с включенным оператором присваивания. Развернуто было бы noti.flags = noti.flags | Notification.FLAG_AUTO_CANCEL; Аналогично у вас есть & = для побитового И,^= для побитового XOR и ~ = для побитового NOT.