Forum: PC-Programmierung Simple Frage, Byte in Bit zerlegen, php


von Tom (Gast)


Lesenswert?

Hallo,

ich komme leider nicht mehr auf den Gedanken und bin nicht fündig 
geworden.
Ich habe ein Zahl zB 16 und möchte damit 4 Zustände darstellen.
Bekomme also den wert 16 und dann sollen 4 relais geschaltet werden
1
1
1
1

Ich weiß nur noch, dass man das durch 2 geteilt hat

Ich denke ihr wisst was gemeint ist. Ich möchte das in einem php-Skript 
verwenden

Vielen Dank für einen Denkanstoß

von Christophe J. (chj)


Lesenswert?


von Tom (Gast)


Lesenswert?

wie löst man das denn händisch?

von foo (Gast)


Lesenswert?

1
$zahl = 16;
2
$bit0 = $zahl & 1;
3
$bit1 = $zahl & 2;
4
$bit2 = $zahl & 4;
5
$bit3 = $zahl & 8;

von Tom (Gast)


Lesenswert?

Hallo,

super vielen Dank!! Das wars :)

von Daniel F. (df311)


Lesenswert?

Tom schrieb:
> Bekomme also den wert 16 und dann sollen 4 relais geschaltet werden
> 1
> 1
> 1
> 1

foo schrieb:
> $zahl = 16;
> $bit0 = $zahl & 1;
> $bit1 = $zahl & 2;
> $bit2 = $zahl & 4;
> $bit3 = $zahl & 8;

ein Byte wird mit zwei Hex-Ziffern dargestellt. 16 in Hex ist 0x10, von 
daher kann das Beispiel oben nicht funktionieren (zumindest nach der 
Anforderung), da bei sechten die Bits 0 bis 4 gleich 0 sind. Mit 15 
gehts aber (und kann alle 16 Zustände darstellen - alles aus bis alles 
ein)

von Peter II (Gast)


Lesenswert?

foo schrieb:
> $zahl = 16;
> $bit0 = $zahl & 1;
> $bit1 = $zahl & 2;
> $bit2 = $zahl & 4;
> $bit3 = $zahl & 8;

wobei 16 nicht gerade ein gutes Beispiel ist. Da sind die extrahierten 
Bits alle 0

von foo (Gast)


Lesenswert?

Daniel F. schrieb:
> 16 in Hex ist 0x10, von
> daher kann das Beispiel oben nicht funktionieren

Peter II schrieb:
> wobei 16 nicht gerade ein gutes Beispiel ist. Da sind die extrahierten
> Bits alle 0

Na ein klein wenig Nachdenken wollte ich dem OP schon noch übrig lassen.
Nur vorkauen bringt ihm selbst ja auch nix, oder?

von Der Andere (Gast)


Lesenswert?

Daniel F. schrieb:
> da bei sechten die Bits 0 bis 4 gleich 0 sind.

bei sechzehn die Bite 0 bis 3 gleich 0 sind

von Huh (Gast)


Lesenswert?

Der Andere schrieb:
> die Bite 0 bis 3

die Bits

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.