Vraag : De logische exploitant van de Schommeling van Java

Ik heb sommige die codes uit DefaultButtonModel.java worden gehaald. Ik ben wat benieuwd na verrichting doet beteken:

            stateMask |= TOEGELATEN;
            stateMask &= ~PRESSED;

stateMask is int., TOELIET is definitief int. (1 << 3), GEDRUKT is int. (1<<2).

openbaar definitief statisch int. DRUKTE = 1 << 2;
openbaar definitief statisch int. LIET = 1 << 3 toe;

Does stateMask |= LIET gemiddelde toe: wijs 1) stateMask OF TOEGELATEN, het dan terug naar toe stateMask?
Does stateMask &= ~PRESSED betekent: 1) neg wordt de PERS eerst (0x0 aan 0x1, 0x1 aan 0x0), dan EN met stateMask, resultaat toegewezen aan stateMask?
" codeBody "
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:
de
public leegte setEnabled (B van Boole) {
        als (isEnabled () == B) {
            terugkeer;
        }
            
        als (b) {
            stateMask |= TOEGELATEN;
        } anders {
            stateMask &= ~ENABLED;
	    // ontwapent en unpress, enkel desgevallend
            stateMask &= ~ARMED;
            stateMask &= ~PRESSED;
        }

            
        fireStateChanged ();
    }
        
    /**
     * {@inheritDoc}
     */
    de openbare leegte setSelected (B van Boole) {
        als (this.isSelected () == B) {
            terugkeer;
        }

        als (b) {
            stateMask |= GESELECTEERD;
        } anders {
            stateMask &= ~SELECTED;
        }

        fireItemStateChanged (
                nieuwe ItemEvent (dit,
                              ItemEvent.ITEM_STATE_CHANGED,
                              dit,
                              B?  ItemEvent.SELECTED: ItemEvent.DESELECTED));
        
        fireStateChanged ();
        
    }

Antwoord : De logische exploitant van de Schommeling van Java

Hallo learningunix,

de lijn controleert als de uiterst linkse byte van „num 1““ is „.

„&num“ is een wijzer aan het geheugenadres waar de eerste byte van „num“ verblijft. „(Char*)“ giet deze wijzer „&num“ (die een wijzer aan int.) is aan een te verkolen wijzer. Aangezien het klusje een één het type van bytegegevens dat toegang tot „is wijzer de te verkolen“ met „*“ heeft toegang tot de eerste byte van int. In endian weinig moet deze byte „1“ voor en „int.“ zijn dat „1“ is - in grote endian zou de eerste byte „0“ zijn aangezien de minste significante byte het meest net één… is

Hoop die hulp,

ZOPPO

Andere oplossingen  
 
programming4us programming4us