Max*_*xim 1 delphi byte bit-manipulation bytearray
我遇到了从TBytes读取随机位数的问题.首先,我遵循了这个问题的建议(关于使用ubitstream.pas单元的答案):在Delphi中处理任意位长数据? 我的例子:binaryfeed(TBytes)=(255,0,0,0,0,0,11,1,112,128,128,130,81);
393216是0000 0000 0000 0110 0000 0000 0000 0000
我可以理解它为什么会发生,但我无法弄清楚如何截断这些额外的零位.有任何想法吗?
问题是字节顺序.
00000110 00000000 00000000
Run Code Online (Sandbox Code Playgroud)
是393216.反转三个字节,你有
00000000 00000000 00000110
Run Code Online (Sandbox Code Playgroud)
这是6.
您使用的代码是小端,但您希望大端的行为.您需要更改代码以解决此不匹配问题.
从我们在问题中看到的,你总是读取整个字节,因此不需要你使用的代码的复杂性.您可以在字节级别操作.显然你仍然需要正确地考虑字节序,但这不是很具挑战性.
| 归档时间: |
|
| 查看次数: |
772 次 |
| 最近记录: |