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