gpt4 book ai didi

erlang - 除了 Erlang,还有其他语言支持位串吗?

转载 作者:行者123 更新时间:2023-12-01 15:12:00 27 4
gpt4 key购买 nike

我经常处理使用某种类型的 COMMAND|LENGTH|PARAMETERS 结构交换信息的“二进制”协议(protocol),其中 PARAMETERS 是任意数量的 TAG|LENGTH|VALUE 元组。 Erlang 通过模式匹配来提取消息中的值,例如:
M = <<1, 4, 1, 2, 16#abcd:16>>.
<<1,4,1,2,171,205>>

使用 M 位串(遵循 COMMAND|LENGTH|PARAMETERS 格式的消息),我可以利用 Erlang 模式匹配来提取命令、长度、参数:
<<Command:8,Length:8,Parameters/binary>> = M.
<<1,4,1,2,171,205>>
Parameters.
<<1,2,171,205>>

对于管理面向“位半字节”的协议(protocol),这是无价的!

是否有任何其他语言接近支持这样的语法,即使是通过附加库?

最佳答案

https://pypi.python.org/pypi/bitstring/3.1.3 for python 允许您在同一级别上做很多工作。

从你的例子:

from bitstring import BitStream
M = BitStream('0x01040102abcd')
[Command, Length, Parameters] = M.readlist('hex:8, hex:8, bits')

ParametersBitStream('0x0102abcd') .

关于erlang - 除了 Erlang,还有其他语言支持位串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852170/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com