牛客网--整数与IP地址间的转换
題目描述
原理:ip地址的每段可以看成是一個0-255的整數,把每段拆分成一個二進制形式組合起來,然后把這個二進制數轉變成
一個長整數。
舉例:一個ip地址為10.0.3.193
每段數字?????????????相對應的二進制數
10???????????????????00001010
0????????????????????00000000
3????????????????????00000011
193??????????????????11000001
組合起來即為:00001010?00000000?00000011?11000001,轉換為10進制數就是:167773121,即該IP地址轉換后的數字就是它了。
?
的每段可以看成是一個0-255的整數,需要對IP地址進行校驗
?
?
?
輸入描述:
輸入?
1?輸入IP地址
2?輸入10進制型的IP地址
輸出描述:
輸出
1?輸出轉換成10進制的IP地址
2?輸出轉換后的IP地址
示例1
輸入
復制
10.0.3.193 167969729輸出
復制
167773121 10.3.3.193?
代碼:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
?
public class Main {
?
? ? public static void main(String[] args) throws IOException {
? ? ? ? ? ? BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
? ? ? ? ? ? String line1 = null; ??
? ? ? ? ? ? String line2 = null;?
? ? ? ? ? ? while ((line1 = br.readLine()) != null && (line2 = br.readLine()) != null) {
? ? ? ? ? ? ? ? String[] IP1 = line1.split("\\.");
? ? ? ? ? ? ? ? long IP2 = Long.parseLong(line2);
? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? System.out.println(Long.parseLong(IP1[0]) << 24 | Long.parseLong(IP1[1]) << 16 |
? ? ? ? ? ? ? ? ? ? ? ? Long.parseLong(IP1[2]) << 8 | Long.parseLong(IP1[3]));
? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? StringBuilder sb = new StringBuilder();
? ? ? ? ? ? ? ? sb.append(String.valueOf((IP2 >> 24) & 255)).append(".").append(String.valueOf((IP2 >> 16) & 255))
? ? ? ? ? ? ? ? .append(".").append(String.valueOf((IP2 >> 8) & 255)).append(".").append(String.valueOf(IP2 & 255));
? ? ? ? ? ? ? ? System.out.println(sb.toString());
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? }
?
}
}
總結
以上是生活随笔為你收集整理的牛客网--整数与IP地址间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSP中get和post请求方式的区别及
- 下一篇: java中Scanner类的使用