G - IP地址转换

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: IP地址总是由4个0-255的数字以"."隔开的形式来显示给用户,例如192.168.0.1。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。

IP地址总是由4个0-255的数字以"."隔开的形式来显示给用户,例如192.168.0.1。在计算机中,一个IP地址用4字节来依次存储其从右到左的4个数字部分,每个字节(8比特)以2进制的形式存储相应的IP地址数字,请你实现一个从IP地址的显示格式到计算机存储格式的转换。

Input
每行输入一个IP地址,如果输入为-1,结束输入

Output
每行输出一个IP地址在计算机存储中以二进制表示的4字节内容

Sample Input
192.168.0.1
255.255.0.0
1.0.0.1
-1

Sample Output
11000000101010000000000000000001
11111111111111110000000000000000
00000001000000000000000000000001

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 * Created by Fant.J.
 * 2017/12/6 19:20
 */
public class Main {
    private static List list = new ArrayList();
    private static String ipAddr = null;
    private static String result = "";
    private static int count = 1;

    public static void main(String []args){
        Scanner scanner = new Scanner(System.in);
        ipAddr = scanner.nextLine();
        while (! ipAddr.contains("-1")){

            String[] datas = ipAddr.split("\\.");
            int data1 = Integer.valueOf(datas[0]);
            int data2 = Integer.valueOf(datas[1]);
            int data3 = Integer.valueOf(datas[2]);
            int data4 = Integer.valueOf(datas[3]);
            pincou(data4);
            pincou(data3);
            pincou(data2);
            pincou(data1);
           // System.out.println(result.length());
            list.add(result);
            //初始化 三个参数
            result="";
            count = 1;
            ipAddr = scanner.nextLine();
        }
        for (Object item:list){
            System.out.println(item);
        }
    }
    public static void pincou(int data){
        while (true){
            int yushu = data%2;
            result = yushu+result;
            data /= 2;
            if (data==0){
                //判断下是否够8个字节
                int judge = result.length();
                if (judge<8*count){
                    for (int i = 0;i<8*count-judge;i++){
                        result = 0+result;
                    }
                }
                count++;
                break;
            }
        }
    }


}
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
7月前
|
开发工具
修改IP地址
【2月更文挑战第29天】修改IP地址。
85 2
|
网络协议
ip 地址哪些是保留地址?
ip 地址哪些是保留地址?
3819 1
|
6月前
|
安全 网络安全 网络架构
IP地址的主要功能
IP地址是网络设备的唯一标识,用于数据包路由、网络通信、互操作性、安全管理和全球信息共享。它们确保数据准确传输,支持路由决策,允许设备安全互动,并打破地域限制。IP地址在不断发展的网络世界中扮演着核心角色。
|
7月前
|
网络协议 网络架构
IP 地址的结构和类型
【4月更文挑战第12天】
340 0
IP 地址的结构和类型
|
7月前
端口地址转换(PAT)与私有IP的映射
【4月更文挑战第12天】
215 1
|
7月前
|
网络协议 Ubuntu 网络安全
127.0.0.1、0.0.0.0和本机ip地址的区别
127.0.0.1、0.0.0.0和本机ip地址的区别
|
算法
IP地址转换整型(算法练习)
IP地址转换整型(算法练习)
141 0
IP地址转换整型(算法练习)
|
缓存 开发者
IP 转换_GeoLite | 学习笔记
快速学习IP 转换_GeoLite
311 0
IP 转换_GeoLite | 学习笔记