十進位制點分IP轉換為32位二進位制IP

2021-07-22 23:34:08 字數 1076 閱讀 5156

寫這篇部落格的緣由在於自己在判斷ip位址的合法性上吃了幾次考慮不周全的虧。

算是引以為戒吧。

#include 

#include

#include

using

namespace

std;

bool change2binary(const

string &str) ;

for(unsigned i = 0; i < str.size(); ++i)

if(judge.find(str[i]) == -1) return

false;

} if(cnt != 3 || str[0] == '.' || str[str.size() - 1] == '.'

|| dots[1] - dots[0] < 2 || dots[2] - dots[1] < 2)

return

false;

/* 將ip位址由 . 分隔的四個字段存入四個int變數中。 */

int arrint[4] = ;

unsigned k = 0;

for (int i = 0; i < 4; ++i)

++k;

}/* 判斷ip位址的合法性2 */

for (int i : arrint)

/* 將十進位制數轉換成二進位制數輸出 */

for (int i = 0; i < 4; ++i)

for (auto iter = vecbin.crbegin(); iter != vecbin.crend(); ++iter)

cout

<< *iter;

}return

true;

}int main(void)

/* 測試資料

.12.12.12

0.1.1.1.

1..2.2234

sd.12j12lj

11001010100101110110000000100001

11001010100101110110000000100001

*/

十進位制點分IP轉換為32位二進位制IP

十進位制點分ip轉換為32位二進位制ip includeusing namespace std int main a i n if p p 1 break if i 3 p 0 i p if i 4 if a k 0 cout data error 題目內容 編寫程式,將十進位制點分的ip轉換為32...

十進位制 轉換為 二進位制

聽說優酷前端面試有問進製數轉換的,甚至是負正整數轉換為二進位制,那就索性一次整個明白 正整數轉二進位制 負整數轉二進位制 小數轉二進位制 1 正整數轉成二進位制。口訣 除二取餘,倒序排列,高位補零。42 除以2得到的餘數 右邊 為010101,然後倒著排一下就是取到的二進位制了 如下圖 計算機內部表...

(string)十進位制 轉換為 二進位制

將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。輸入描述 多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 輸出描述 每行輸出對應的二進位制數。輸入 013 8輸出 0111 1000 下面是王道上的解法,模擬的是...