In Java, ich habe 2 Bytes:Wie verteilt man Bits in einem Byte?
byte b1 = (byte) 0b11111111, b2 = (byte) 0b00000000;
Ich möchte sie mischen, so dass jedes erste Bit von b1
ist, während der andere von b2
ist (Lesen von links nach rechts). Die erste und die zweite Hälfte der Eingänge sind getrennt, so dass das Ergebnis 2 Bytes beträgt. Das Ergebnis b3
und b4
würde wie folgt aussehen.
byte b3 = (byte) 0b10101010, b4 = 0b10101010;
Um darzustellen, wie die Bits eindeutig sind (einen Brief unter Verwendung der einzigartigen Bit angeben):
byte b1 = (byte) 0bHGFEDCBA, b2 = (byte) 0bPONMLKJI;
Das Ergebnis wäre:
byte b3 = (byte) 0bHPGOFNEM, b4 = 0bDLCKBJAI;
Oder grafisch,
+---+---+---+---+---+---+---+---+
b1 | H | G | F | E | D | C | B | A |
+---+---+---+---+---+---+---+---+
| | | | | | | |
| | | | | | | +--------------------------------------------+
| | | | | | +----------------------------------------+ |
| | | | | +------------------------------------+ | |
| | | | +--------------------------------+ | | |
| | | +-------------------+ | | | |
| | +---------------+ | | | | |
| +-----------+ | | | | | |
+-------+ | | | | | | |
| | | | | | | |
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
b3 | H | P | G | O | F | N | E | M | b4 | D | L | C | K | B | J | A | I |
+---+---+---+---+---+---+---+---+ +---+---+---+---+---+---+---+---+
| | | | | | | |
+-----------+ | | | | | | |
| +---------------+ | | | | | |
| | +-------------------+ | | | | |
| | | +-----------------------+ | | | |
| | | | +------------------------------------+ | | |
| | | | | +----------------------------------------+ | |
| | | | | | +--------------------------------------------+ |
| | | | | | | +------------------------------------------------+
| | | | | | | |
+---+---+---+---+---+---+---+---+
b2 | P | O | N | M | L | K | J | I |
+---+---+---+---+---+---+---+---+
Was wäre das Einfachen? Auf welche Weise könnte dies erreicht werden?
Sie wollen also die Bytes verschachteln? –
Meinst du jede Sekunde * bit *? Unklar, was du verlangst. Sobald Sie es kohärent ausdrücken, sollte die Lösung offensichtlich werden. – EJP
Ich denke auch, dass Sie möchten, dass b4 0b01010101 ist. – EJP