首页 > 代码库 > 地址映象和变换

地址映象和变换

一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。

输入格式:

输入在一行中给出32位二进制字符串。

输出格式:

在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。

输入样例:
11001100100101000001010101110010
输出样例:

204.148.21.114

import java.math.BigInteger;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		String str = cin.nextLine();
		String str1 = str.substring(0, 8);
		String str2 = str.substring(8, 16);
		String str3 = str.substring(16, 24);
		String str4 = str.substring(24, 32);
		BigInteger bi1 = new BigInteger(str1, 2);
		BigInteger bi2 = new BigInteger(str2, 2);
		BigInteger bi3 = new BigInteger(str3, 2);
		BigInteger bi4 = new BigInteger(str4, 2);
		System.out.printf("%s.%s.%s.%s", bi1.toString(), bi2.toString(),
				bi3.toString(), bi4.toString());
	}
}