我试图将ruby中的bytesize转换为十六进制字符串。 我尝试了各种pack / unpack / chr / hex组合无济于事。
这是我设法提出的,
"1".bytesize.chr.to_s.split.pack('a4') => "\x01\x00\x00\x00"
如您所知,这不适用于较大的字符串,例如,
"11111111".bytesize.chr().to_s.split.pack('a4') => "\b\x00\x00\x00"
其中第一个字节应为\x0B
,
"testtttttttttttttttttttttttttttttttttttttttttt".bytesize.chr.to_s.split.pack('a4')
# => ".\x00\x00\x00"
这是错误的。
,即恰恰相反,Unpack 4 bytes to a signed integer,如果<string>.bytesize
为4294967295
,则应为"\xFF\xFF\xFF\xFF"
。