Ich habe ein Byte A und Byte B. Ich suche Byte C, das ist jedes andere Bit von A und jedes andere Bit von B. Also wenn A = 10011010 und B = 01110010 dann wäre C 10110101 wo 1011 ist jedes zweite Bit von A und 0101 ist jedes zweite Bit von B. Kann mir jemand dabei helfen?Kombinieren von 2 Bytes
2
A
Antwort
2
Try this:
byte C = (byte)(
(A & 0x80) |
((A & 0x20) << 1) |
((A & 0x08) << 2) |
((A & 0x02) << 3) |
((B & 0x80) >> 4) |
((B & 0x20) >> 3) |
((B & 0x08) >> 2) |
((B & 0x02) >> 1));
es Siehe Arbeits online: ideone
0
So etwas sollte es tun:
var nibble1 = ((a & 0x80) << 3) | ((a & 0x20) << 2) |
((a & 0x08) << 1) | (a & 0x02);
var nibble2 = ((b & 0x80) << 3) | ((b & 0x20) << 2) |
((b & 0x08) << 1) | (b & 0x02);
var result = (nibble1 << 4) | nibble2;
Für jedes Eingangsbyte Sie das nehmen "erste" (eigentlich Es ist üblich, vom anderen Ende aus zu zählen, aber ich werde damit gehen, das klingt hier einfacher) Byte, verschiebe es um 3 Stellen (um hinter den anderen Platz zu machen), füge das "Thi" hinzu rd "byte (verschiebt es zwei Plätze) etc.
Dann schiebst du das erste Nibble, das du gerade vier Plätze berechnet hast (um Platz für das zweite zu schaffen) und klebst sie zusammen.
0
$a = 154; //10011010
$b = 114; //01110010
$expected = 181; //10110101
$result = (($a>>1)&1)+(($a>>2)&2)+(($a>>3)&4)+(($a>>4)&8) << 4
| (($b>>1)&1)+(($b>>2)&2)+(($b>>3)&4)+(($b>>4)&8);
echo $expected == $result;
Lassen Sie mich darüber nachdenken, es für eine kleine Weile, dies effizient mehr getan werden könnte ...
Ein anderes:
$a = 154; //10011010
$b = 114; //01110010
$expected = 181; //10110101
$result = ($a&0x80)+(($a<<1)&0x40)+(($a<<2)&0x20)+(($a<<3)&0x10)+
(($b>>4)&0x8)+(($b>>3)&0x4)+(($b>>2)&0x2)+(($b>>1)&0x1);
echo $expected == $result;
... Und jetzt Ich stelle fest, die C# tag ...
Verwandte Themen
- 1. Kombinieren von 2 YouTube-APIs?
- 2. Kombinieren von 2 Pdfs nebeneinander
- 3. Malloc von 2 Bytes gibt Probleme
- 4. Konvertieren von 2 Bytes in vorzeichenbehafteten int
- 5. .htaccess kombinieren 2 RewriteRule
- 6. Symfony kombinieren 2 Abfragen
- 7. 2 Bytes zu kurz Java
- 8. MySql Abfrage kombinieren Ergebnisse von 2 Tabellen
- 9. Kombinieren von 2 Listen in Lisp
- 10. Kombinieren Ergebnisse von 2 Tabellen mit Bedingung
- 11. Kombinieren von 2 einfügen in einem Befehl
- 12. Kombinieren von 2 Abfragen in 1 Abfrage
- 13. Kombinieren von 2 Shadern in Einheit
- 14. Kann 2 Selektoren nicht kombinieren
- 15. kombinieren 2 Zahlen Datum C#
- 16. Kombinieren Sie zwei Bytes zu kurz mit Linksverschiebung
- 17. Convert 2 Bytes in eine ganze Zahl
- 18. R konvertieren 2 Bytes von Rohdaten in eine ganze Zahl
- 19. Bitshifting 2 Bytes in c von einem Array
- 20. Spiel kombinieren! Framework 2.xx mit Angular.js
- 21. Kombinieren von 2 Hex-Werten in 1 Hex-Wert
- 22. Wie kann ich diese 2 Ereignisse von worksheet_change kombinieren?
- 23. Kombinieren von 2 SQL-Abfragen und Erhalten Ergebnis in einem
- 24. Python kombinieren 2 Listen von Zeichenketten für CSV
- 25. SQL-Abfrage zum Kombinieren von 2 Spalten möglich?
- 26. Python: 2 geordnete Listen in Liste von Tupeln kombinieren
- 27. Mysql - Kombinieren Sie 2 SQL-Abfragen
- 28. kombinieren 2 wenn Bedingungen ohne || und &&
- 29. So kombinieren Sie 2 LINQ zu einem
- 30. Kombinieren Sie Anbieter Javascripts in eckigen 2