gpt4 book ai didi

c - 用于蓝牙传输的 Ruby 字符数组到字节数组(十六进制字符)

转载 作者:行者123 更新时间:2023-11-30 14:39:57 25 4
gpt4 key购买 nike

我应该将一个字节数组(我猜是字符串的 C 术语?)传递给用于蓝牙通信的 api。我试图传递的是这个数组,作为字符串连接:

["\xA6", "\x9E", "\x00", "\x14", "\x00", "\x8E", "\x00", "{", "\"", "s", "i", "t", "e", "_", "n", "a", "m", "e", "\"", ":", "1", "1", "5", "8", "5", "4", "}", "\xF5"]

但是,这会默默失败,预期的格式似乎是:

a69e0014008e007b22736974655f6e616d65223a3131353835347df5

我可以看到 Ruby 有一个字符串方法 bytes.to_a ,它会给我

[166, 158, 0, 20, 0, 142, 0, 123, 34, 115, 105, 116, 101, 95, 110, 97, 109, 101, 34, 58, 49, 49, 53, 56, 53, 52, 125, 245]

但我想提取每个字节的十六进制值,然后 .join 它们。有没有一种简单的方法可以实现这一目标?或者我的做法不正确!

最佳答案

给定一个二进制字符串:

s = "\xA6\x9E\x00\x14\x00\x8E\x00{\"site_name\":115854}\xF5"

您可以使用unpack1H* (十六进制字符串,高半字节在前):

s.unpack1('H*') #=> "a69e0014008e007b22736974655f6e616d65223a3131353835347df5"

关于c - 用于蓝牙传输的 Ruby 字符数组到字节数组(十六进制字符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55806735/

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