用java写一个网络IP进制的转换:十进制转二进制、二进制转十进制:java:十进制与二进制的相互转换

网络IP十进制与二进制的相互转换:

public class SubMaskBinaryDecimal {
    public static void main(String[] args) {
        //测试
        System.out.println("十进制转二进制");
        System.out.println(ipToBinary("255.255.255.128"));
        System.out.println(ipToBinary("255.255.255.127"));
        System.out.println(ipToBinary("192.168.1.64"));
        System.out.println("二进制转十进制");
        System.out.println(binaryToTenIp("11111111.11111111.11111111.10000000"));
        System.out.println(binaryToTenIp("11111111.11111111.11111111.01111111"));
        System.out.println(binaryToTenIp("11000000.10101000.00000001.01000000"));
    }

    //十进制ip转二进制
    public static String ipToBinary(String ip){
        String binary="";
        String[] str = ip.split("\\.");
        //循环提取"."之前的数字
        for (int i = 0; i < str.length; i++) {
            String s = str[i].toString();
            //把"."之前的每一段的十进制数字转为二进制 并循环串起
            binary+=addZero(Integer.toBinaryString(Integer.parseInt(s)))+"."; //把"."补充回去
        }
        //提取0到binary.length() - 1范围的二进制码(去掉最后的点)
        String lastBinaryIp=binary.substring(0, binary.length() - 1);
        //返回最终的ip
        return lastBinaryIp;
    }
    //对最后的二进制进行补零,让每一段都够八位
    public static String addZero(String binary){
        switch (binary.length()){
            case 7:
                return "0"+binary;
            case 6:
                return "00"+binary;
            case 5:
                return "000"+binary;
            case 4:
                return "0000"+binary;
            case 3:
                return "00000"+binary;
            case 2:
                return "000000"+binary;
            case 1:
                return "0000000"+binary;
            default:
                return binary;
        }
    }
    //二进制转十进制
    public static String binaryToTenIp(String binary){
        String ten="";
        String[] str = binary.split("\\.");
        for (int i = 0; i < str.length; i++) {
            String s = str[i].toString();
            //二进制转十进制
            ten+=Integer.parseInt(s,2)+".";//把"."补充回去
        }
        //提取0到ten.length() - 1范围的二进制码(去掉最后的点)
        String lastTen=ten.substring(0, ten.length() - 1);
        //返回十进制ip
        return lastTen;
    }
}
//测试
十进制转二进制
11111111.11111111.11111111.10000000
11111111.11111111.11111111.01111111
11000000.10101000.00000001.01000000
二进制转十进制
255.255.255.128
255.255.255.127
192.168.1.64

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值