Ich muss bestimmte Bits eines Bytes extrahieren und die extrahierten Bits zurück in einen Hexadezimalwert konvertieren.Perl: Wie extrahiere ich bestimmte Bits aus einem Byte und verberge diese Bits dann zu einem Hexadezimalwert?
Beispiel (der Wert des Byte ist 0xd2):
bit position
11010010 is 0xD2
- Bit 0-3 des Kanal definiert, welche
0010b
ist0x2
- Bit 4-5 der Controller definiert Das ist
01b
ist0x1
- Bit 6-7 definiert den Port die
11b
ist0x3
ich irgendwie vom Byte erhalten müssen ist 0xD2
zu Kanal 0x2
ist, Controller ist 0x1
, Port ist 0x3
Ich googeln zuzuteilen und fand die Funktionen pack
/unpack
, vec
und sprintf
. Aber ich kratze am Kopf, wie man die Funktionen benutzt, um das zu erreichen. Irgendeine Idee, wie man das in Perl erreicht?
Ja, das ursprüngliche Format ist der Hex-Wert vom Byte so in obigem Beispiel 0xd2 nicht, was mich zuvor angedeutet. –
Ich bin froh, dass ich helfen konnte, diese Antwort zu verbessern. :) – memowe
Nach dem Lesen: http://www.devshed.com/c/a/Perl/More-Perl-Bits/ Die Münze fiel :-) –