现有多个二进制串,请给出对应的“十进制”IP表示形式。 输入数据 输入包含多组测试数据,每组占一行,由若干位01串组成。 输出数据 对于每组输入数据,若为一个合法的二进制IP地址串,请输出转换后的十进制IP地址,否则输出Invalid。每一组输出占一行。
时间: 2024-05-05 10:18:06 浏览: 162
计算机作业:已知一个只包含 0 和 1 的二进制数,长度不大于 10 ,将其转换为十进制并输出。
对于你的要求我已经了解了,接下来我会给出对应的程序实现。
代码如下:
```python
import re
def binary_to_decimal_ip(binary_ip):
# 判断是否为合法的二进制IP地址
pattern = '^(0|1){8}(0|1){8}(0|1){8}(0|1){8}$'
if not re.match(pattern, binary_ip):
return "Invalid"
# 将二进制IP地址转换为十进制IP地址
decimal_ip = []
for i in range(0, 32, 8):
decimal_ip.append(str(int(binary_ip[i:i+8], 2)))
return ".".join(decimal_ip)
while True:
try:
binary_ip = input().strip()
decimal_ip = binary_to_decimal_ip(binary_ip)
print(decimal_ip)
except:
break
```
这段代码会不断地读取用户输入的二进制IP地址,然后将其转换为十进制IP地址并输出。如果输入的字符串不是合法的二进制IP地址,则输出 "Invalid"。
希望我的回答能够解决你的问题,如果你还有其他问题可以继续提问哦。
阅读全文