现在每个人都应该知道IPv6了。IPv6有很长很麻烦的地址。1996年,一些非常聪明的人发明了一个方案来更好地在RFC 1924中对他们进行编码。由于我无法理解的原因,这还没有被广泛采用。为了帮助采用,您的任务是用您选择的语言实现转换器。由于存储非常昂贵,特别是在源代码存储库中,显然您必须尽可能少地使用它。
为RFC1924中指定的地址格式编写编码器。输入是一个无聊的标准格式的IPv6地址。
维基百科被盗这是:
IPv6地址表示为由四个十六进制数字组成的八个组,每个组代表16位(两个八进制)。这些组用冒号(:)分隔。IPv6地址的一个例子是:
2001:0db8:85a3:0000:0000:8a2e:0370:7334十六进制数字不区分大小写,但IETF建议使用小写字母。八个四位数组的完整表示可以通过几种技术简化,消除了表示的部分。可以省略组中的前导零。因此,示例地址可以写成:
2001:db8:85a3:0:0:8a2e:370:7334零组一个或多个连续零值组可以使用两个连续冒号(::)替换为单个空组。因此,示例地址可以进一步简化:
2001:db8:85a3::8a2e:370:7334本地主机(回环)地址0:0:0:0:0:0:1和IPv6未指定地址0:0:0:0: 0:0:0:0 :0:0:0:1和::。这种双冒号替换只能在一个地址中应用一次,因为多次出现会造成一个不明确的表示。
必须正确处理表示中省略的零!
输出是高级IPv6格式的RFC1924地址。
与RFC一样,这是:
编写IPv6地址的新标准方法是将它们视为128位整数,用基本85符号编码,然后使用85个ASCII字符对其进行编码。将85 base85数字编码的字符集按升序定义为:
'0'..'9', 'A'..'Z', 'a'..'z', '!', '#', '转换过程是一个简单的除法过程,在每一步取剩下的部分,然后再对商进行分割,然后读取页面,就像对任何其他基本转换一样。您可以在RFC中使用建议的转换算法,或者您可以想到的任何其他转换算法。它只需要得到正确的输出!示例输入输出这是RFC的一张:输入:1080:0:0:0:8:800:200 C:417 A或1080:8:800:200 C:417 A输出:4)+k&C#VzJ4br>0wv%Yp您的程序可以接受输入并以任何标准方式返回输出。因此,可以从stdin和output读取到stdout,也可以将代码实现为一个函数,该函数将输入作为参数并返回输出。获奖标准和往常一样,标准漏洞是不允许的这是密码-高尔夫所以最短的正确代码字节赢!这是我的第一个挑战,所以请告诉我在描述中的任何问题/含糊不清之处。, '%', '&', '(',
')', '*', '+', '-', ';', '<', '=', '>', '?', '@', '^', '_',
'`', '{', '|', '}', and '~'.J120
转换过程是一个简单的除法过程,在每一步取剩下的部分,然后再对商进行分割,然后读取页面,就像对任何其他基本转换一样。
J221
您可以在RFC中使用建议的转换算法,或者您可以想到的任何其他转换算法。它只需要得到正确的输出!
K122示例输入输出K223
这是RFC的一张:
输入:
J124
1080:0:0:0:8:800:200 C:417 A或1080:8:800:200 C:417 A
J225
输出:
J126
4)+k&C#VzJ4br>0wv%Yp
J227
您的程序可以接受输入并以任何标准方式返回输出。因此,可以从stdin和output读取到stdout,也可以将代码实现为一个函数,该函数将输入作为参数并返回输出。
K128获奖标准K229
和往常一样,标准漏洞是不允许的
这是密码-高尔夫所以最短的正确代码字节赢!
这是我的第一个挑战,所以请告诉我在描述中的任何问题/含糊不清之处。
发布于 2022-11-04 20:00:59
https://codegolf.stackexchange.com/questions/70277
复制相似问题