1. 程式人生 > >整數與ip地址間的轉換

整數與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地址


輸入例子:
10.0.3.193
167969729

輸出例子:
167773121
10.3.3.193
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
String s1 = sc.nextLine();
String s2 = sc.nextLine();
System.out.println(convert1(s1));
System.out.println(convert2(s2));
}
}


private static String convert2(String s2) {
//將十進位制轉換為二進位制,注意:在轉換的過程中,引數必須是整形,二進位制轉換為十進位制,則引數可以是字串
String binaryString = Long.toBinaryString(Long.valueOf(s2));
String tempString = "00000000000000000000000000000000"+binaryString;
binaryString = tempString.substring(tempString.length()-32);

String st1 = binaryString.substring(0,8);
int parseInt1 = Integer.parseInt(st1,2);
String st2 = binaryString.substring(8,16);
int parseInt2 = Integer.parseInt(st2,2);
String st3 = binaryString.substring(16,24);
int parseInt3 = Integer.parseInt(st3,2);
String st4 = binaryString.substring(24,32);
int parseInt4 = Integer.parseInt(st4,2);

String ret = "";
ret = ret + parseInt1+"."+parseInt2+"."+parseInt3+"."+ parseInt4;


return ret;
}


private static long convert1(String s1) {
String[] string = s1.split("\\.");

String re = "";
for(int i = 0; i < string.length;i++){
String binaryString = Integer.toBinaryString(Integer.valueOf(string[i]));
//是為了進行字串的補0操作。
String temp= "00000000"+binaryString;
binaryString = temp.substring(temp.length()-8); 
re +=binaryString;
}
//將二進位制字串轉換為10進位制
long parseLong = Long.parseLong(re, 2);
return parseLong;
}

相關推薦

整數IP地址轉換【牛客網】

題意理解 給出一個ip和整數,分別轉換成整數和ip,轉換規則是ip每個欄位轉換成8為二進位制數,再拼成32位的二進位制數。 問題分析 ip轉整數,按.取各欄位字串,轉化為整數,再按照a*2^24+b*2^16+c*2^8+d公式計算整數。 整數轉ip,分別整除2^24,2^16,2^

整數ip地址轉換

題目描述 原理:ip地址的每段可以看成是一個0-255的整數,把每段拆分成一個二進位制形式組合起來,然後把這個二進位制數轉變成 一個長整數。 舉例:一個ip地址為10.0.3.193 每段數字 

【華為 OJ 】整數IP地址轉換

原理:ip地址的每段可以看成是一個0-255的整數,把每段拆分成一個二進位制形式組合起來,然後把這個二進位制數轉變成 一個長整數。 舉例:一個ip地址為10.0.3.193 每段數字             相對應的二進位制數 10                   0

python整數IP地址轉換 python整數IP地址轉換 [轉]

python整數與IP地址轉換 [轉] 我們有時會將一個整數與IP地址進行互換,用python程式碼實現很簡單 將一個整數如2000000,變為一個IP地址的方式 >>> import socket >>>

整數ip地址之間的轉換

整數與IP地址間的轉換 題目描述 原理:ip地址的每段可以看成是一個0-255的整數,把每段拆分成一個二進位制形式組合起來,然後把這個二進位制數轉變成一個長整數。舉例:一個ip地址為10.0.3.19

python_整型IP地址轉換

rto 代碼實現 p地址 關系 pri python 對齊 brush 進制 1. strip 函數接受參數,可刪除兩邊的字符,例如 strip(‘0b‘) 0和b是或的關系。在代碼中使用了lstrip 是因為bin函數進行轉換成二進制數字時會自動添加0b 2. zfill

32位二進制IP地址十進制IP地址互相轉換

bin parseint 轉換 idt result 32位 temp str ann 代碼: 1 import java.util.List; 2 import java.util.ArrayList; 3 import java.util.Scanner;

IP地址數字地址相互轉換

http://goolgeplus.lofter.com/post/8de0d_d6d0a 站長網IP查詢地址:http://tool.chinaz.com/ip/ 可以看到,IP查詢工具是先將IP段地址轉化成數字地址,再才得到IP的實體地址。 ------------

VMware下網絡模式配置IP地址無法正常獲取及解決方案

什麽 應該 任務 互連 但我 intern 資料 for 互聯 目錄一 網絡配置中出現的錯誤及解決方案二 VMware下網絡配置的三種模式簡介 1、橋接模式(Bridged) 2、網絡地址轉化模式(NAT) 3、僅主機模式(host-only)一 網

Linux中ip地址結構和ip地址轉換

class \n image nbsp toa shel string linux .com ip地址結構 struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET *

Linux遠端管理命令之網絡卡IP地址

網絡卡 網絡卡是一個專門負責網路通訊的硬體裝置 IP地址是設定在網絡卡上的地址資訊 我們可以把電腦比作電話,網絡卡相當於SIM卡,IP地址相當於電話號碼 IP地址 每天聯網的電腦上都有IP地

嵌入式Linux網路程式設計,網路基礎,套接字socket(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW),IP地址,埠號,位元組序,位元組序轉換函式,IP地址轉換

文章目錄 1,socket 1.1,socket的型別(SOCK_STREAM、SOCK_DGRAM、SOCK_RAW) 1.2,socket的位置 2,IP地址 2.1,特殊IP地址: 3,埠號

讓Logback日誌中顯示主機名IP地址及一切你想顯示的

1.建立一個類繼承自ch.qos.logback.classic.pattern.ClassicConverter   2.重新方法 @Override public String convert(ILoggingEvent event) {}  

Linux學習筆記(10)linux網路管理配置之一——主機名IP地址

Linux學習筆記(10)linux網路管理與配置之一——主機名與IP地址 大綱目錄 0.常用linux基礎網路命令 1.配置主機名 2.配置網絡卡資訊與IP地址 3.配置DNS客戶端 4.配置名稱解析順序 5.配置路由與預設閘道器 6.雙網絡卡繫結   1.配置主機名 1.1

域名IP地址的聯絡區別

(轉載自一個好朋友的部落格連結,略有修改,共同學習,共同進步!) 我們也知道每一臺機都有一個唯一ip地址, 特別難記,所以出現了今天的DNS(域名) 當我們的計算機想要和一個遠端機器連線時,我們可以申請連線該機器ip地址下的DNS,例如:www.baidu.com。

Linux下網路IP地址轉換函式 (轉)

網路IP地址本是用32位二進位制來表示的,為了記憶的方便可以用點分十進位制來表示IP地址,同時,網路IP地址在網路傳輸和計算機內部的儲存方式也不同,需要用函式來進行轉換。 1.將點分十進位制字串轉換成十進位制長整型數:in_addr_t inet_addr(const char *cp);       in_

邏輯地址 實體地址轉換

邏輯地址=頁號+頁內地址=p+d; 實體地址=塊號+頁內地址=f+d; (兩個d是一樣的,頁表中儲存有p與f的對應關係)   地址總長度位數=頁號佔位數m+頁內地址佔位數n    邏輯地址中的頁數=2^m         (2的 頁號位數 次冪)   一個頁面(業內

域名解析IP地址的關係

1、域名解析DNS (1)域名伺服器:完成域名地址到IP地址轉化的計算機。 (2)域名伺服器上執行著一個數據庫系統; (3)資料庫中儲存著域名地址與IP地址。 (4)使用者主機需要把域名地址轉化為IP地址時向域名伺服器提出查詢請求; (5)域名伺服器根據使用者請求進行查詢

IP地址格式轉換(htonl、ntohl;inet_addr、inet_ntoa)

1、htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u_long netlong); u_short PASCAL FAR ntohs (u_short netshort); ntohl( )-----網路順序轉換成主機順序 u_lo

JAVA中通過InetAddress類獲取主機名IP地址

獲取一個InetAddress物件 InetAddress address =InetAddress.getLocalHost(); //通過getByName方法+本機名: InetAddres