私はバイトAとバイトBを持っています。私はAからの1ビットおきのビットと、Bからの1ビットおきのビットを探しています。したがって、A = 10011010とB = 01110010ならばCは10110101 1011はAのすべてのビットであり、0101はBの1ビットおきのビットです。2バイトを組み合わせる
2
A
答えて
2
これを試してみてください:
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));
それがオンラインで作業を参照してください:このようなideone
0
何かがそれを行う必要があります。
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;
各入力について、あなたが実際には( "第一" を取る、バイトもう片方から数えてみるのが通例ですが、ここではより簡単に聞こえます)バイト、3桁シフトする(他の人のために余裕を持たせるため)、 "thi rd "バイト(2つの場所をシフトする)など。
次に、計算した最初のニブルを4つの場所(2番目のスペースを作成するために)に移動して貼り付けます。
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;
もう1
...これは、より効率的に行うことができ、私はしばらくそれについて考えてみましょう:$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;
...そして今私が気づきますC#タグ...
関連する問題
- 1. 2-組み合わせC++
- 2. 2つのリストの組み合わせ
- 3. Python itertoolsの組み合わせの組み合わせ
- 4. データウェアハウス:冗長な組み合わせの組み合わせ
- 5. geom_pointとgeom_lineをggplot2のggplot2と組み合わせて2つのグループ化要因を組み合わせる
- 6. 配列と組み合わせパターンの組み合わせを見つける
- 7. クエリの組み合わせを組み合わせるためのLinq構文
- 8. 2つの合計結果を組み合わせる?
- 9. 組み合わせ質問
- 10. 組み合わせ変数
- 11. の組み合わせR
- 12. 組み合わせルックアップ値
- 13. 組み合わせは
- 14. ワイアードの組み合わせ
- 15. 組み合わせ条件
- 16. 組み合わせルビー
- 17. Pythonの組み合わせ
- 18. 組み合わせ選択
- 19. ReferenceManyFields/ReferenceArrayField組み合わせ
- 20. Rは組み合わせ
- 21. 組み合わせmysql mongodb
- 22. 組み合わせが
- 23. マッチ組み合わせが
- 24. の組み合わせR
- 25. 選択組み合わせ
- 26. メディアクエリステートメントの組み合わせ
- 27. DataFrameの組み合わせ
- 28. ロックの組み合わせ
- 29. 組み合わせ式
- 30. 2組の座標のユニークな組み合わせの抽出