题目:

输入:

第一行输入字符串个数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. MyEclipse10.7安装Aptana后重启:An internal error has occurred. No more handles [Could not detect registered XULRunner to use]

    问题描述: 当安装Aptana插件后重启MyEclipse10.7,发生错误: An internal error has occurred. No more handles [Could not d ...

  2. 安装ubuntu18.04.1

    下载ubuntu:https://www.ubuntu.com/download/desktop 在虚拟机创建好ubuntu18.04.1后无法启动(选择的是linux,ubuntu64位),提示:此 ...

  3. 【移动端】js禁止页面滑动与允许滑动

    禁止页面滑动 通常静止滑动方案:(阻止滑动事件) window.ontouchmove=function(e){ e.preventDefault && e.preventDefaul ...

  4. Java排序之升序与降序

    以前在学校学排序的时候,总是自己写排序的代码,真正到工作中,直接使用java提供的排序方法,但最近发现行业默认的和学习时有些不一样. 以前总是在进行排序时如果前边的数字和后边数字的差为负则交换两个数字 ...

  5. 2018-2019-2 《网络对抗技术》Exp2 后门原理与应用 20165211

    目录 后门原理与应用 实验内容 基础问题回答 常用后门工具 Netcat Socat MSFmeterpreter 实践过程记录 1.后门工具熟悉 2.使用netcat获取主机操作Shell,cron ...

  6. Codeforces 808G Anthem of Berland - KMP - 动态规划

    题目传送门 传送点I 传送点II 传送点III 题目大意 给定一个字符串$s$,和一个字符串$t$,$t$只包含小写字母,$s$包含小写字母和通配符'?'.询问$t$可能在$s$中出现最多多少次. 原 ...

  7. 使用vim打造自己的python编辑器

    基础配置 vim的配置是在用户主目录下的 ~/.vimrc 文件中完成的,如果没有的话,需要自己新建一下: cd ~ touch .vimrc 首先做些简单的配置: set nocompatible ...

  8. How to install Maven on Windows

    To install Apache Maven on Windows, you just need to download the Maven’s zip file, and Unzip it to ...

  9. 没有使用Material组件和使用了的对比

    import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp extends S ...

  10. 2199: [Usaco2011 Jan]奶牛议会 2-sat

    链接 https://www.luogu.org/problemnew/show/P3007 https://www.lydsy.com/JudgeOnline/problem.php?id=2199 ...