zoukankan      html  css  js  c++  java
  • ip字符串,二进制转十进制输出

    题目:

    输入:

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

    输出:

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

    代码实现:

     1 package ip;
     2 
     3 import java.util.Scanner;
     4 
     5 public class iptest {
     6     
     7     public static void main(String[] args) {
     8         Scanner sc=new Scanner(System.in);
     9         int n=sc.nextInt();            //nextint以一个int为结尾,光标还在本行
    10         sc.nextLine();                //要用nextLine获取"Enter"键,跳转到下一行
    11                                     //int n=Integer.parseInt(sc.nextLine());  或者使用这一句代替上两行
    12         String[] ipString=new String[n];
    13         for(int i=0;i<n;i++) {
    14             ipString[i]=sc.nextLine();
    15         }                                    
    16         for(int i=0;i<n;i++) {
    17             printIP(ipString[i]);
    18         }
    19     }
    20     //将传入的ip二进制字符串,转成十进制,并输出
    21     public static void printIP(String s) {
    22         int num[]=new int[4];
    23         int ipArray[][]=new int[4][8];
    24         int k=0;
    25         
    26         //将字符串中数字存入int数组
    27         //字符c ——>int k 转换方法: int k=Integer.parseInt(String.valueOf(c))
    28         for(int i=0;i<4;i++)
    29             for(int j=0;j<8;j++)
    30                 ipArray[i][j]=Integer.parseInt(String.valueOf(s.charAt(k++)));
    31         
    32         //将每四个8个二进制数存入数组
    33         for(int i=0;i<4;i++) {
    34             num[i]=0;
    35             for(int j=0;j<8;j++) {
    36                 num[i]+=ipArray[i][j]*Math.pow(2,7-j);
    37             }
    38         }
    39         //将每个二进制数转换成对应的十进制数,并按照格式  *.*.*.*  输出
    40         int j=1;
    41         for(int i=0;i<4;i++) {
    42             System.out.printf("%d",num[i]);
    43             if(j++<4)
    44                 System.out.printf(".");
    45             else
    46                 System.out.println();
    47         }    
    48     }
    49 }

    注意点:

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

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

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

  • 相关阅读:
    linux中read用法
    apt-get 使用指南
    linux文件系统
    KMP
    在C#中的各种应用
    A*算法,遗传算法
    Dijkstra算法,Floyd算法
    AE开发tips
    TOC 右键菜单
    ubuntu下的一些意外
  • 原文地址:https://www.cnblogs.com/heyboom/p/9109897.html
Copyright © 2011-2022 走看看