Hallo,
bestimmt hat sich hier schonmal jemand mit BitArrays und deren Darstellung in BYtes sowie den sich daraus ergebenden Integer-Zahlen beschäftigt.
Hierzu suche ich Code-Zeilen, weil ich gerade ein Gerät auslesen muss, welches die 8 Binärausgänge als „Bit mapped integer“ zurückgibt, den ich gerne in ein Array mit 8 Elementen und 1/0 Werten zurück-umwandeln möchte.
So soll z.B. Die Zahl 514 ein Array mit 8 Elementen zurückliefern, dessen zweites Element =1 und alle anderen =0 sind.
16448 liefert dann das 7. (binär 6.) Element = 1, alle anderen =0
Ich mache das im Moment mit der Hand am Arm:
$bin_tx = substr( (string)decbin( $arrXml['DO'] ) , -8 );
for ($i = 0; $i <= 7; $i++)
{
$do[ 7 - $i ] = $bin_tx[ $i ];
}
print_r( $do );
Geht das nicht eleganter?