题目:

输入:

第一行输入字符串个数n,余下几行输入ip二进制字符串

输出:

按*.*.*.*格式输出十进制ip

代码实现:

 package ip;

 import java.util.Scanner;

 public class iptest {

     public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); //nextint以一个int为结尾,光标还在本行
sc.nextLine(); //要用nextLine获取"Enter"键,跳转到下一行
//int n=Integer.parseInt(sc.nextLine()); 或者使用这一句代替上两行
String[] ipString=new String[n];
for(int i=0;i<n;i++) {
ipString[i]=sc.nextLine();
}
for(int i=0;i<n;i++) {
printIP(ipString[i]);
}
}
//将传入的ip二进制字符串,转成十进制,并输出
public static void printIP(String s) {
int num[]=new int[4];
int ipArray[][]=new int[4][8];
int k=0; //将字符串中数字存入int数组
//字符c ——>int k 转换方法: int k=Integer.parseInt(String.valueOf(c))
for(int i=0;i<4;i++)
for(int j=0;j<8;j++)
ipArray[i][j]=Integer.parseInt(String.valueOf(s.charAt(k++))); //将每四个8个二进制数存入数组
for(int i=0;i<4;i++) {
num[i]=0;
for(int j=0;j<8;j++) {
num[i]+=ipArray[i][j]*Math.pow(2,7-j);
}
}
//将每个二进制数转换成对应的十进制数,并按照格式 *.*.*.* 输出
int j=1;
for(int i=0;i<4;i++) {
System.out.printf("%d",num[i]);
if(j++<4)
System.out.printf(".");
else
System.out.println();
}
}
}

注意点:

1.scanner用法:nextInt以一个 int类型数字结束,nextLine以enter字符结束  

2.char转int : 先将char转成string,再转成int

3.java中乘方的用法  a的b次方:Math.pow(a,b)

ip字符串,二进制转十进制输出的更多相关文章

  1. erlang中通过ip和子网掩码,计算地址范围 【二进制和十进制的转换】

    在程序中,难免用的二进制和十进制之间的转换.遇到一个场景,通过ip和子网掩码,计算地址范围. 而地址范围为:网络地址+1—— 广播地址 -1 .  网络地址即ip和子网掩码的与的位运算.广播地址为:网 ...

  2. 汇编语言从键盘输入一个字符串(串长不大于80)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z)

    (1)从键盘输入一个字符串(串长不大于80). (2)以十进制输出字符串中非字母字符的个数(不是a to z或 A to Z). (3)输出原字符串且令非字母字符闪烁显示. (4)找出字符串中ASCI ...

  3. 怎样快速对二进制和十进制进行互转化——IP地址规划与设计总结

    转至:https://blog.csdn.net/erlian1992/article/details/47342189 最近一直在看全国计算机三级网络技术这本书,看到第二章的时候,不免会遇到计算机中 ...

  4. C#中二进制、十进制和十六进制互相转换的方法

    二进制在C#中无法直接表示,我们一般用0和1的字符串来表示一个数的二进制形式.比如4的二进制为"100".下面介绍C#里面用于进制转换的方法. 十进制转换为二进制(int--> ...

  5. MATLAB中FFT_HDL_Optimized模块定点(IEEE754单精度float格式)二进制与十进制转换实现

    早些时间段,做了Matlab中FFT_HDL_Optimzed模块FFT HDL代码仿真,并与Xilinx Vivado自带的xfft IP进行单精度浮点比较(后面随笔叙述).因为FFT_HDL_Op ...

  6. Matlab常用函数:二进制和十进制转换,均值,方差

    文章目录 Size s=size(A) [r,c]=size(A) [r,c,m]=size(A) size(A,n) 二进制和十进制转换 dec2bin mean 均值 mean(a,1) mean ...

  7. js二进制与十进制互转

    十进制转换为二进制: var num = 100; console.log(num.toString(2)); toString()方法可把一个 Number 对象转换为一个字符串,并返回结果. 语法 ...

  8. Java中将0x开头的十六进制字符串转换成十进制整数

    1.Integer.toString(int i) 由于input(输入数据)是以0x开头的字符串,并不是整型.因而在用 String s = Integer.toString(input); 时用会 ...

  9. C++读入二进制数并转换为十进制输出

    题目描述 已知一个只包含0和1的二进制数,长度不大于10,将其转换为十进制并输出. 输入描述 输入一个二进制整数n,其长度不大于10 输出描述 输出转换后的十进制数,占一行 样例输入 样例输出 sol ...

随机推荐

  1. 【js操作url参数】获取指定url参数值、取指定url参数并转为json对象

    获取指定url参数值 /* 获取某url中的某参数值 调用:GetUrlQueryString("[url地址]","[参数名]"); */ function ...

  2. 2019/3/19 wen 运算符

  3. 为什么不应该使用ZooKeeper做服务发现

    [编者的话]本文作者通过ZooKeeper与Eureka作为Service发现服务(注:WebServices体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验 ...

  4. 【题解】4465 [Jsoi2013]游戏中的学问

    原题传送门 线性dp推一推就推出方程 设\(f[i][j]\)表示有\(j\)个人,分成\(i\)组,一共有多少分发 边界为\(f[0][0]=1\),珂以得出方程为\(f[i][j]=(j-1)*( ...

  5. python简说(十七)操作mysql数据库

    import pymysqlconn = pymysql.connect(host='118.24.3.40',user='jxz',password='123456',port=3306,db='j ...

  6. tr 命令用法

     tr a. 替换全部字符 [root@bogon scripts]# tr [a-z] [A-Z]  < /etc/fstab    将读出的结果全部替换成大写字母  (取一行作为展示效果) ...

  7. Git clone、git reset

    一,git clone 1,git clone某一个分支 git clone -b <branch> <remote_repo> 2,.git 文件太大 :clone的时候,可 ...

  8. Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.

    原因:使用负载均衡的时候,第一次请求phpMyAdmin主页的时候web01进行处理,页面返回的cookie存放在web01上.填写用户名密码提交之后,是web02进行处理的,此时给页面的cookie ...

  9. django基础 -- 2. django初识

    一.模块渲染  jinja2 实现简单的字符串替换(动态页面) 1.下载 pip install jinja2 示例 : html文件中 <!DOCTYPE html> <html ...

  10. log4j的基本使用方法

    本文转载自http://www.codeceo.com/article/log4j-usage.html 一.基本用法 1.log4j需要jar包log4j-1.2.14.jar,链接: http:/ ...