牛客网--整数与IP地址间的转换
題目描述
原理:ip地址的每段可以看成是一個(gè)0-255的整數(shù),把每段拆分成一個(gè)二進(jìn)制形式組合起來(lái),然后把這個(gè)二進(jìn)制數(shù)轉(zhuǎn)變成
一個(gè)長(zhǎng)整數(shù)。
舉例:一個(gè)ip地址為10.0.3.193
每段數(shù)字?????????????相對(duì)應(yīng)的二進(jìn)制數(shù)
10???????????????????00001010
0????????????????????00000000
3????????????????????00000011
193??????????????????11000001
組合起來(lái)即為:00001010?00000000?00000011?11000001,轉(zhuǎn)換為10進(jìn)制數(shù)就是:167773121,即該IP地址轉(zhuǎn)換后的數(shù)字就是它了。
?
的每段可以看成是一個(gè)0-255的整數(shù),需要對(duì)IP地址進(jìn)行校驗(yàn)
?
?
?
輸入描述:
輸入?
1?輸入IP地址
2?輸入10進(jìn)制型的IP地址
輸出描述:
輸出
1?輸出轉(zhuǎn)換成10進(jìn)制的IP地址
2?輸出轉(zhuǎn)換后的IP地址
示例1
輸入
復(fù)制
10.0.3.193 167969729輸出
復(fù)制
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());
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? }
?
}
}
總結(jié)
以上是生活随笔為你收集整理的牛客网--整数与IP地址间的转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JSP中get和post请求方式的区别及
- 下一篇: java中Scanner类的使用