• 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) 

  • 相关阅读:
    evernote100个做笔记的好方法
    平衡二叉树的调整模版
    晨间日记的奇迹
    hdu 2952 Counting Sheep
    hdu 1535 Invitation Cards
    poj 3259 Wormholes(spfa)
    poj 2263 Heavy Cargo(floyd)
    poj 3268 Silver Cow Party(SPFA)
    hdu 1690 Bus System
    hdu 3631 Shortest Path(Floyd)
  • 原文地址:https://www.cnblogs.com/heyboom/p/9109897.html
Copyright © 2020-2023  润新知