答えて
すべてのビットを完全に回復することはできません。
B << 3
左に3ビットシフトし、ループしません。これは、Bの上位3ビットの状態が消去されることを意味 - あなたがそれらを知っている限り、あなたはBを回復することはできません
例:
10101101 << 3
Turns: 10101101
^---^
Into: 01101000
^---^
上位3ビットが失われ、下の3つは0で埋められます。削除されたデータは削除されます。
| 0x07
は(111
で)下の3つのビットを埋め、あなたがシフトしていない場合でも、あなたはそれらのビットが回収不能作り、111
で最下位の3ビットを消去することと思います。それは論理和の代わりにXORされた場合
今は、別のXORと、回復するだろう:((A^B)^B) == A
A | same-value
はができないため、
A^same-value
は別のA^same-value
でを元に戻すことができます他とやり直しますA | same-value
A | same-value
は元に戻すことはできませんA & same-value
しかし、シフトがXORされていても(まだそうではないにしても)、問題が発生します。 、与えられた
正解、あなたは上位3ビットを失う。初期の関数が左回転に変更されたとしても、 '|とにかく右端の3ビットを設定しています。 – Anthony
は
B = 0b00000000
B = 0b00100000
//...
B = 0b11100000
あなたは同じA
を得ることができます(デモのみが、バイナリ形式のため0b
を使用して、一例として、8ビットB
を使用して)ので、私はあなたが計算を逆にすることができないと思います左端の3ビットが失われます。
- 1. charのビット単位シフト配列
- 2. ビット単位のシフトとインクリメントで減算を実装する
- 3. ビット単位のシフト動作uint64_tを変数
- 4. C#を単位テストに代入する
- 5. LC3アセンブリビット単位の右シフト
- 6. 右シフトと左シフト(SLL/SRL)
- 7. C#のビット単位のANDの逆数は何ですか?
- 8. 2の累乗で除算をビット単位でシフトする方法は?
- 9. ビット単位の10による除算
- 10. ビット単位のbitmanipulationパズル
- 11. Doctrine2 Querybuilderのビット単位で
- 12. ルアの「ビット単位AND」
- 13. GCCビット単位の属性
- 14. ビット単位のオーバーフローチェックin c
- 15. ビット単位のモジュラス計算
- 16. Java/Androidで| =とはどういう意味ですか? (ビット単位のOR代入)
- 17. C++の8ビット整数と32ビット整数のビット単位の論理和
- 18. ビット単位Or:C#対C++
- 19. c、ビット単位、論理式
- 20. "代入の左辺オペランドとして必要な左辺値" - C++
- 21. オーバーフローしたビットを変数のもう一方のチップに移動するC#ビット単位のシフト演算子がありますか?
- 22. Cでのビット単位の操作 - AnyOddBit
- 23. デルファイ定数のビット単位の表現
- 24. マイクロコントローラでのビット単位の論理
- 25. バイトのJavaビット単位の比較
- 26. 円のビット単位の演算 - as3
- 27. ビット単位のデータをよりメンテナンス可能にする
- 28. ビット単位のAND正常および
- 29. JavaScriptビット単位の演算子
- 30. CUDA int4ビット単位の演算
左に3をシフトし、下位の3ビットを1に設定していますか? 'B =(A >> 3)'の何が間違っていますか? (あなたがシフト時にビットを失うことを理解していると仮定した場合) – Nigel