Der Martin: error reporting

Beitrag lesen

Moin,

Du rechnest falsch. Für E_ALL ohne E_NOTICE musst du E_ALL AND NOT E_NOTICE rechnen und nicht E_ALL NOT E_NOTICE.

das Ergebnis ist aber dasselbe, solange im Ausgangswert (E_ALL) alle Bits gesetzt sind. Bei 2047 = 0x07FF ist das der Fall, darum führen beide Rechnungen zum gleichen Ergebnis.

Zahlenwerte:
 E_ALL    = 0x07FF
 E_NOTICE = 0x0008

Rechenweg mit AND und NOT:
 0x07FF & (~0x0008) =
 0x07FF & 0xFFF7 = 0x07F7 = 2039    - passt also.

Rechenweg mit reinem XOR:
 0x07FF ^ 0x0008 = 0x07F7 = 2039    - passt auch. qed.

Als Ergebnis sollte dann 2039 rauskommen.

Das tut es auch. :-)

Schönen Tag noch,
 Martin

--
Lieber eine Fliege im Porzellanladen
als ein Elefant in der Suppe.