Hopsel: Hex Kombination rückgänig machen ?

Beitrag lesen

Hi Invisible!

Hört sich interessant an ... und wie würde eine abfrage danach aussehen ?
Also wenn ich jetzt z.b. wissen möchte ob der Zustand 0x0800 zutreffend ist ?

Am besten wird das klar, wenn du die Bit ausschreibst. Der Einfachheit halber nehme ich aber ein kürzeres Beispiel (PHP, da ich in Perl nicht sattelfest bin):

// Buttons  
$definedButtons = array();  
$definedButtons['OK'] = 0x0001;      // 0001  
$definedButtons['CANCEL'] = 0x0002;  // 0010  
$definedButtons['YES'] = 0x0004;     // 0100  
$definedButtons['NO'] = 0x0008;      // 1000  
  
// beliebige Linearkombination der 4 Basiswerte  
$buttons = 13;                       // 1101  
  
$out = array();  
foreach($definedButtons as $key => $definedButton)  
{  
  // UND-Verküpfung ergibt entweder 0 (false) oder den Wert $definedButton (true)  
  if($definedButton & $buttons)  
    $out[] = $key;  
}  
  
echo 'Folgende Buttons sollen genutzt werden: '.implode(', ',$out);

Und natürlich hatte ich Mist erzählt. Wichtig ist, dass die Werte mit UND verknüpft werden.
ODER ist für die Erstellung des zusammengesetzten Zustands relevant.

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)