デルファイを使用して.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. 32ビット整数のビット操作
- 3. Perl変数をバイト/ビットで表示
- 4. C++ビット操作
- 5. ビット操作AND
- 6. ビット操作
- 7. C#のバイトの操作
- 8. Javaのロング - ビットの操作
- 9. 長いビットのビット操作エラー
- 10. PHPでのバイト操作
- 11. Javaバイト配列の操作
- 12. ByteArrayからのビット操作
- 13. Perlでのビット操作
- 14. ANSI Cのビット操作ライブラリ
- 15. Javaビット操作の問題
- 16. 16進ビット操作
- 17. Cの変数のバイト/ビットを見てください
- 18. Swiftでのビット操作の操作方法は?
- 19. Cビット操作char配列
- 20. C++のビット配列のフィールドの操作
- 21. Cでのビット単位の操作 - AnyOddBit
- 22. Delphiでのディレクトリパス操作ですか?
- 23. ビット操作の代わりに、ビットマップ
- 24. nand MIPSアセンブリーのビット単位操作
- 25. Pythonバイトを「符号なし8ビット整数」に変換する
- 26. ロング・カウント・セットおよびアンセット・ビットでのJavaビット操作
- 27. ビット操作を使用したビットの抽出
- 28. は整数()キャストは、Delphi 64ビット
- 29. どのようにDelphiのコピー操作を.Netサブリング操作に変換しますか?
- 30. HMACSHA256出力バイト/ビット
最も簡単な方法は、ルックアップテーブルを使用することです –