C C 整數與IP位址間的轉換

2021-08-07 20:19:45 字數 1208 閱讀 5479

原理: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

程式設計方案:
一,資料輸入統一識別轉換,再位運算
#include//

#includeusing namespace std;//不需要轉換二進位制數

int main()

}c=(a[0]<<24)+(a[1]<<16)+(a[2]<<8)+a[3];

cout<>8;

}cout<

二,輸入短資料自動識別,位運算
#include#include#includeusing namespace std;

int main()

{unsigned int a,b,c,d;

char ch;

while(cin>>a>>ch>>b>>ch>>c>>ch>>d)//輸入點肯定不會識別為數字

{cout<<((a<<24)|(b<<16)|(c<<8)|d)<>a;

cout<<((a&0xff000000)>>24)<<"."<<((a & 0x00ff0000)>>16)<<"."<<((a&0x0000ff00)>>8)<<"."<<(a & 0x000000ff)<

整數與ip位址間的轉換

原理 ip位址的每段可以看成是乙個0 255的整數,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成 乙個長整數。舉例 乙個ip位址為10.0.3.193 每段數字 相對應的二進位制數 10 00001010 0 00000000 3 00000011 193 11000001 組合...

整數與IP位址間的轉換

原理 ip位址的每段可以看成是乙個0 255的整數,把每段拆分成乙個二進位制形式組合起來,然後把這個二進位制數轉變成 乙個長整數。舉例 乙個ip位址為10.0.3.193 每段數字 相對應的二進位制數 10 00001010 0 00000000 3 00000011 193 11000001 組合...

整數與IP位址間的轉換

題目 乙個長整數。每段數字 相對應的二進位制數 10 00001010 0 00000000 3 00000011 193 11000001 本題含有多組輸入用例,每組用例需要你將乙個ip位址轉換為整數 將乙個整數轉換為ip位址 while true try str1 10.0.3.193 spli...