#P05042. IPv6地址转二进制
IPv6地址转二进制
题目背景
(第六版本 地址)是一个 位的二进制整数,为了使用方便,将 位 地址每 位划分为一段,总共 段,每段的 位二进制数用 位十六进制数表示(四位二进制数正好可以用一位十六进制数表示),段与段之间用 :
隔开,这种表示方法叫做 冒号十六进制表示法
,例如:。
书写的时候可以将每段高位的 省略,例如上面的 地址可以书写为 。
有时候 地址中有很多 ,可以把连续的多段 压缩为 ::
,但一个 地址中只能有一个 ::
。例如 压缩后可以表示为 , 压缩后可以表示为 或者 。
【附】十六进制数 与四位二进制数的对应关系如下表所示:
十六进制数 | 四位二进制数 | 十六进制数 | 四位二进制数 | |
---|---|---|---|---|
0 | 0000 | 8 | 1000 | |
1 | 0001 | 9 | 1001 | |
2 | 0010 | a | 1010 | |
3 | 0011 | b | 1011 | |
4 | 0100 | c | 1100 | |
5 | 0101 | d | 1101 | |
6 | 0110 | e | 1110 | |
7 | 0111 | f | 1111 |
题目描述
给定一些用 冒号十六进制表示法
书写的 地址,将它们转换成对应的 位的二进制整数。
输入格式
第一行是一个正整数 ,接下来有 行,每行是一个用 冒号十六进制表示法
书写的 地址。
输出格式
一共 行,依次是输入的 地址对应的 位的二进制整数。
输入输出样例
7
123:4567:89ab:cdef:123:4567:89ab:cdef
fe80::1:0:440:44ff:1233:5678
fe80::1:0
fe80::
fe80::5:0:0:abcd
::fe80
::
00000001001000110100010101100111100010011010101111001101111011110000000100100011010001010110011110001001101010111100110111101111
11111110100000000000000000000000000000000000000100000000000000000000010001000000010001001111111100010010001100110101011001111000
11111110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000
11111110100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
11111110100000000000000000000000000000000000000000000000000000000000000000000101000000000000000000000000000000001010101111001101
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111010000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
说明/提示
👀️ 对于 的数据,,描述方法中不会出现大写字母。