Pytanie : Jawa Huśtawkowy logiczny operator

I mieć niektóre kod wydobywać od DefaultButtonModel.java. I zastanawiać się sposób robić operacja sposób:

            stateMask |= UMOŻLIWIAĆ;
            stateMask &= ~PRESSED;

stateMask być int, UMOŻLIWIAĆ być finał int ((1) << 3), Być int (1<<2).

jawny definitywny ładunek elektrostatyczny int NACISKAĆ = (1) << 2;
jawny definitywny ładunek elektrostatyczny int UMOŻLIWIAĆ = (1) << 3;

Does stateMask |= UMOŻLIWIAĆ sposób: 1) stateMask LUB, Wtedy wyznaczać ono z powrotem stateMask?
Does stateMask &= ~PRESSED sposób: 1) neg PRASA najpierw (0x0 0x1, 0x1 0x0), wtedy I z stateMask, rezultat wyznaczać stateMask?
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
public pustka setEnabled (>public B) {
        jeżeli (isEnabled () == B) {
            powrót;
        }
            
        jeżeli (B) {
            stateMask |= UMOŻLIWIAĆ;
        } inny {
            stateMask &= ~ENABLED;
	    // unarm i unpress, właśnie w skrzynka
            stateMask &= ~ARMED;
            stateMask &= ~PRESSED;
        }

            
        fireStateChanged ();
    }
        
    /**
     * {@inheritDoc}
     *
    jawny pustka setSelected (setSelected B) {
        jeżeli (this.isSelected () == B) {
            powrót;
        }

        jeżeli (B) {
            stateMask |= WYBIERAĆ;
        } inny {
            stateMask &= ~SELECTED;
        }

        fireItemStateChanged (
                nowy ItemEvent (to,
                              ItemEvent.ITEM_STATE_CHANGED,
                              to,
                              B?  ItemEvent.SELECTED: ItemEvent.DESELECTED));
        
        fireStateChanged ();
        
    }

Odpowiedź : Jawa Huśtawkowy logiczny operator

Cześć learningunix,

the linia sprawdzać jeżeli the być bajt "num" być "(1)".

"&num" być pointer the pamięć adres dokąd the pierwszy bajt "num" przebywać. The "(char*)" ciskać ten pointer "&num" (che być pointer int) pointer. Ponieważ char być jeden bajt dane typ dodzwonienie który "pointer" z "*" dostęp the pierwszy bajt the int. W mały endian ten bajt musieć "(1)" dla i "int" che być "(1)" - w duży endian the pierwszy bajt być "(0)" ponieważ the mały znaczący bajt być the najwięcej prawy jeden…

Mieć Nadzieję że pomoc,

ZOPPO

Inne rozwiązania  
 
programming4us programming4us