我正在使用 delphi 从 .txt 文件逐字节提取数据。对于每个字节,我需要交换该字节的开头和结尾位。我已经在谷歌上搜索了几个小时,但我找不到任何关于在delphi中操作字节变量内的位的引用。有什么想法吗?
最佳答案
b := (b and $7E) or (b shr 7) or (b shl 7);
首先保留中间 6 位,然后在寄存器移位操作中交换 MSB 和 LSB 位。
Delphi 中的位操作很有趣。 有很多选择,这是一个直接的解决方案。 David 提出了一种可以更快的 LUT 解决方案(不过只有一点点)。
有一个关于位反射(reflect)整个字节的有趣的类似问题,请参阅 How can I bit-reflect a byte in Delphi?
.
关于delphi - 在 Delphi 中操作字节变量的位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17047176/