32位二进制IP地址与十进制IP地址互相转换


代码:
import java.util.List;
import java.util.ArrayList;
import java.util.Scanner;
public class Transformation {
public static void main(String[] args)throws Exception {
String a;
boolean b;
Scanner in=new Scanner(System.in); System.out.println("请输入IP地址或32位2进制数");
a=in.next();
if((b=a.matches("\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"))) {
System.out.println("IP地址转2进制");
String[] array = a.split("\\.");
/* for ( int i=0; i < array.length; i++) {
System.out.println(array[i]);
}*/
int[] intTemp = new int[array.length];
for (int i=0; i <array.length; i++)
{
intTemp[i] = Integer.parseInt(array[i]);
}
for (int i=0;i<intTemp.length ;i++)
{
int c =intTemp[i];
String binaryString = Integer.toBinaryString(c);//
int binaryInt = Integer.parseInt(binaryString);//
System.out.print(String.format("%08d",binaryInt));//
}
}
else if(b=a.matches("\\d{32}")) {
System.out.println("2进制转iP地址");
/*
for(int i = 0; i < a.length(); i++){
arr[i] = a.substring(0,8);
result.add(tmp)
a= a.substring(8);
// System.out.println(arr[i]);*/
List<String> result = new ArrayList<String>();
int iPos = 0;
int iLen = a.length();
while(iLen>=8){
String tmp = a.substring(0, 8);
result.add(tmp);
a= a.substring(8);
iLen = a.length();
}
for(String st:result){ System.out.print(Integer.parseInt(st,2)); System.out.print("."); } } else {
System.out.println("非法的输入!!!!"); }
} }
32位二进制IP地址与十进制IP地址互相转换的更多相关文章
- python实现IP地址转换为32位二进制
python实现IP地址转换为32位二进制 #!/usr/bin/env python # -*- coding:utf-8 -*- class IpAddrConverter(object): de ...
- 我的Java开发学习之旅------>二进制、八进制、十进制、十六进制之间转换
一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权 ...
- 给定一个IP地址,转化为二进制32位,再转化为十进制,写出一个方法让其十进制转为IP地址
十进制是已知的数值 第一种方法: <script type="text/javascript"> var num=2148140545; var str=num.toS ...
- 将IP地址字符串转为32位二进制
def str2bin(s): temp = s.split('.') result = '' for i in range(len(temp)): temp[i] = str(bin(int(tem ...
- ip(点分十进制 <==> 二进制整数)之间的转换
linux的套接字部分比较容易混乱,在这里稍微总结一下. 地址转换函数在地址的文本表达式和它们存放在套接字地址结构中的二进制值进行转换. 地址转换函数有四个:其中inet_addr 和 inet_nt ...
- <转>32位移植到64位 注意事项
32bit-64bit porting work注意事项 64位服务器逐步普及,各条产品线对64位升级的需求也不断加大.在本文中,主要讨论向64位平台移植现有32位代码时,应注意的一些细小问题. 什么 ...
- [转载]使用32位64位交叉编码混淆来打败静态和动态分析工具 - wildsator
0×00 摘要 混淆是一种能增加二进制分析和逆向工程难度与成本的常用技术.主流的混淆技术都是着眼于使用与目标CPU相同的机器代码,在相同的处理器模式下,隐藏代码并进行控制.本文中引入了一种新的混淆方法 ...
- 为什么32位系统最大支持4G内存??我自己悟出来了 终于 。。。。。
今天突然开窍了,想通了..... 以下是我的抽象想法: 32位系统 这个 多少位 指的是 硬件的 一次性发送过来的位数,一个字节 等于8位,内存的一个存储单元就是一个字节,即8位. 也可以这样来想这个 ...
- JavaScript 32位整型无符号操作
在 JavaScript 中,所有整数字变量默认都是有符号整数,这意味着什么呢? 有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数. 数值范围从 -2^ ...
随机推荐
- YOLO学习
YOLO1:https://blog.csdn.net/m0_37192554/article/details/81092514 https://blog.csdn.net/shuiyixin/art ...
- L1-Day15
1. 我记得昨天锁门了呀.(什么关系?“记得”后面,如果接动词,那动词该是什么形式?) [我的翻译]I remembered locking the door yestarday. [标准答 ...
- OSL
1,SimpleColorShader: shader gamma(color cin = color(,,),output color Cout=color(,,)) { Cout = cin; } ...
- JAVA学习笔记(1)—— eclipse自动补全和主题及字体配置
1.自动补全功能 (1)打开 Eclipse -> Window -> Perferences (2)选择Java -> Editor -> Content Assist -& ...
- PostgreSQL对汉字按拼音排序
转自:https://www.cnblogs.com/gaojian/p/3188609.html postgres=# \l List of databases Name | Owner | Enc ...
- pptpd免radius限速、限连接+自由定制功能脚本
因为就几个用户懒得上radius,所以手写了一个用户管理脚本. 脚本很简单,具体直接看repo吧. https://github.com/esxgx/pptpd-exscripts
- .Net Core项目管理----Git的一些基本使用方法
使用git的基本操作 1.Git的克隆 git clone https://XXXXXXXXXXXXXXXXXXXXX 2.拉取 git pull 3.查询状态 git status 4.添加 git ...
- [转]PostgreSQL数据类型
第六章 数据类型 6.1概述 PostgreSQL 提供了丰富的数据类型.用户可以使用 CREATE TYPE 命令在数据库中创建新的数据类型.PostgreSQL 的数据类型被分为四种,分别是基本 ...
- Android应用市场的帮助类
写了一个Android应用市场的帮助类,如下: public class MarketUtils { public static final String MARKET_DATA = "ma ...
- Spring 将请求参数封装成对象
简单描述:最近手里的模块,前后台之间需要传递很多的参数,使用封装的PageData,来获取请求参数的,作微服务迁移的时候,就涉及到需要把参数从pagedata里取出来,一个一个的放到对象的属性中.就很 ...