Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从ruby中的base64编码中读取一个double_Ruby_String_Base64_Limit - Fatal编程技术网

从ruby中的base64编码中读取一个double

从ruby中的base64编码中读取一个double,ruby,string,base64,limit,Ruby,String,Base64,Limit,如何从base64编码的字符串中读取一个值? 例如,如果我有一个数组: part = [1.2222,1.3333] 我将这个数组转换为二进制表示,如下所示: bin = part.pack('G*') 在那之后: base64 = Base64.encode64 bin 输出是这样的: base64 ="P/OOIZZSvTw/9VUyYXwb2g==\n" 那么,如何读取此格式中的第一个值,以确保不会遗漏等效值中的任何字符 目标是在一个限制和偏移量之后执行。执行完全相反的方法:解码

如何从base64编码的字符串中读取一个值? 例如,如果我有一个数组:

part = [1.2222,1.3333]
我将这个数组转换为二进制表示,如下所示:

bin =  part.pack('G*')
在那之后:

base64 = Base64.encode64 bin
输出是这样的:

base64 ="P/OOIZZSvTw/9VUyYXwb2g==\n"
那么,如何读取此格式中的第一个值,以确保不会遗漏等效值中的任何字符


目标是在一个限制和偏移量之后执行。

执行完全相反的方法:解码base64字符串,使用相同的格式字符解包一个值(不使用
*
仅获取一个值)


执行完全相反的方法:解码base64字符串,使用相同的格式字符解压一个值(不使用
*
仅获取一个值)


执行完全相反的方法:解码base64字符串,使用相同的格式字符解压一个值(不使用
*
仅获取一个值)


执行完全相反的方法:解码base64字符串,使用相同的格式字符解压一个值(不使用
*
仅获取一个值)



谢谢,但我现在无法打开行李。。我只想把一个字符串读成等价的值。问题是我不知道有多少个字符代表一个值,你明白吗?@user6776,Single
G
pack生成8字节的字符串。和base64编码使字符串长度为3/2。(忽略填充,对奇数长度字符串发出问题)@user6776,因此您可以使用类似于:
base64[0,12]。unpack('m')[0]。unpack('G')[0]
如果我错了,请更正我,您是说字符串的前12个字符表示“浮点”?@user6776,是的,我是。尝试
[[1.2222].pack('G')].pack('m').size
(需要减去1以排除换行符)。或者
[[1.2222].pack('G')].pack('m').chomp.size
谢谢,但我不知道如何打开包装。。我只想把一个字符串读成等价的值。问题是我不知道有多少个字符代表一个值,你明白吗?@user6776,Single
G
pack生成8字节的字符串。和base64编码使字符串长度为3/2。(忽略填充,对奇数长度字符串发出问题)@user6776,因此您可以使用类似于:
base64[0,12]。unpack('m')[0]。unpack('G')[0]
如果我错了,请更正我,您是说字符串的前12个字符表示“浮点”?@user6776,是的,我是。尝试
[[1.2222].pack('G')].pack('m').size
(需要减去1以排除换行符)。或者
[[1.2222].pack('G')].pack('m').chomp.size
谢谢,但我不知道如何打开包装。。我只想把一个字符串读成等价的值。问题是我不知道有多少个字符代表一个值,你明白吗?@user6776,Single
G
pack生成8字节的字符串。和base64编码使字符串长度为3/2。(忽略填充,对奇数长度字符串发出问题)@user6776,因此您可以使用类似于:
base64[0,12]。unpack('m')[0]。unpack('G')[0]
如果我错了,请更正我,您是说字符串的前12个字符表示“浮点”?@user6776,是的,我是。尝试
[[1.2222].pack('G')].pack('m').size
(需要减去1以排除换行符)。或者
[[1.2222].pack('G')].pack('m').chomp.size
谢谢,但我不知道如何打开包装。。我只想把一个字符串读成等价的值。问题是我不知道有多少个字符代表一个值,你明白吗?@user6776,Single
G
pack生成8字节的字符串。和base64编码使字符串长度为3/2。(忽略填充,对奇数长度字符串发出问题)@user6776,因此您可以使用类似于:
base64[0,12]。unpack('m')[0]。unpack('G')[0]
如果我错了,请更正我,您是说字符串的前12个字符表示“浮点”?@user6776,是的,我是。尝试
[[1.2222].pack('G')].pack('m').size
(需要减去1以排除换行符)。或
[[1.2222].pack('G')].pack('m').chomp.size
base64 = "P/OOIZZSvTw/9VUyYXwb2g==\n"
base64.unpack('m')[0].unpack('G')[0]
# => 1.2222
Base64.decode64(base64).unpack('G')[0]
# => 1.2222