デルファイを使用して.txtファイルからバイト単位でデータを取得しています。各バイトごとに、そのバイトの先頭と末尾のビットを入れ替える必要があります。私は何時間もGoogleを検索してきましたが、デルファイのバイト変数内のビットを操作するための参照は見つかりません。何か案は?Delphiのバイト変数の操作ビット
答えて
b := (b and $7E) or (b shr 7) or (b shl 7);
まず、中央の6ビットを保持してから、レジスタシフト操作でMSBビットとLSBビットを交換します。
デルファイのビット操作は楽しいです。 多くのオプションがありますが、これは簡単な解決策です。 デビッドは、高速化が可能なLUTソリューションを提案しています。
全体のビットをビット反射することに関する興味深い同様の質問がありました。How can I bit-reflect a byte in Delphi?
を参照してください。
これは*解決策です。第1オペランドはMSBとLSBであり、第2オペランドは初期MSB(現在LSB位置)であり、第3オペランドは初期LSB(MSB位置にある)です。もちろん、MSB-LSBスワップでは 'または'の結果は 'b'です。 –
また、ルックアップテーブルを使用する場合は、上記の1ライナーを使用してテーブルを生成することもできます。 –
LU RDによる完璧な答え! Andreasの説明をありがとう! – HHH
- 1. Cビット操作/ 1バイトから別のバイトへのコピー
- 2. Javaによるバイト・ビット操作
- 3. 32ビット整数のビット操作
- 4. フレームの操作(Delphi)
- 5. コンピュータのバイト数とビット数
- 6. アセンブリのビット操作
- 7. ビット操作AND
- 8. C++ビット操作
- 9. ビット操作
- 10. ビット操作
- 11. Cビット操作
- 12. Cビット設定(ビット操作)
- 13. Perl変数をバイト/ビットで表示
- 14. JAVAバイト操作
- 15. 長いビットのビット操作エラー
- 16. Javaのロング - ビットの操作
- 17. C#のバイトの操作
- 18. ANSI Cのビット操作ライブラリ
- 19. Perlでのビット操作
- 20. Cコードでのビット操作
- 21. Pythonのビット配列操作
- 22. ビット単位の操作:FitsBits
- 23. Javaビット操作の問題
- 24. ByteArrayからのビット操作
- 25. ByteStringのビット単位操作
- 26. ビット単位のC操作
- 27. ビット操作の問題
- 28. ビット操作MIPSアセンブリ
- 29. 16進ビット操作
- 30. PHPでのバイト操作
最も簡単な方法は、ルックアップテーブルを使用することです –