gpt4 book ai didi

ruby - 编码的十六进制字符串中的字节数

转载 作者:太空宇宙 更新时间:2023-11-03 18:27:50 26 4
gpt4 key购买 nike

这可能是一个简单的问题,但我正在尝试查看编码和字节(我已经有一段时间没看过了)来实现二进制协议(protocol)。

看起来正常的字符是1个字节。但是,当您以十六进制对它们进行编码时,它会将字节数减半。

ruby-1.9.2-p180 :001 > "abcd".bytesize
=> 4
ruby-1.9.2-p180 :002 > ["abcd"].pack("H*")
=> "\xAB\xCD"
ruby-1.9.2-p180 :003 > ["abcd"].pack("H*").bytesize
=> 2

我还期待十六进制编码会出现字符 0-9 和 A-F

有人可以帮助澄清这里发生了什么吗?而且,如果您能指出我对在线一般编码的良好评论,我很乐意复习一下。我还没有看到这方面的任何简单概述,这会很棒。

谢谢!

最佳答案

#pack 读取给定的字符串并根据给定的格式将其转换为二进制。 pack('H*') 表示你给出的字符串表示十六进制表示法,所以它会将字节 ABCD 从十六进制转换转换为二进制 (1010 1011 1100 1101),这是两个字节。

尝试 ["g"].pack("H*"),其中 g 不是有效的十六进制字符...

关于ruby - 编码的十六进制字符串中的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8468970/

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